Repo created
3
app-thunderbird/README.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# Thunderbird for Android
|
||||
|
||||
This is the source code of the Thunderbird Android app.
|
||||
99
app-thunderbird/badging/fossBeta-badging.txt
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
application-icon-120:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-160:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-240:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-320:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-480:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-640:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-65534:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-label-ar:'Thunderbird Beta'
|
||||
application-label-be:'Thunderbird Beta'
|
||||
application-label-bg:'Thunderbird Beta'
|
||||
application-label-ca:'Thunderbird Beta'
|
||||
application-label-co:'Thunderbird Beta'
|
||||
application-label-cs:'Thunderbird Beta'
|
||||
application-label-cy:'Thunderbird Beta'
|
||||
application-label-da:'Thunderbird Beta'
|
||||
application-label-de:'Thunderbird Beta'
|
||||
application-label-el:'Thunderbird Beta'
|
||||
application-label-en-GB:'Thunderbird Beta'
|
||||
application-label-en:'Thunderbird Beta'
|
||||
application-label-eo:'Thunderbird Beta'
|
||||
application-label-es:'Thunderbird Beta'
|
||||
application-label-et:'Thunderbird Beta'
|
||||
application-label-eu:'Thunderbird Beta'
|
||||
application-label-fa:'Thunderbird Beta'
|
||||
application-label-fi:'Thunderbird Beta'
|
||||
application-label-fr:'Thunderbird Beta'
|
||||
application-label-fy:'Thunderbird Beta'
|
||||
application-label-ga:'Thunderbird Beta'
|
||||
application-label-gl:'Thunderbird Beta'
|
||||
application-label-hr:'Thunderbird Beta'
|
||||
application-label-hu:'Thunderbird Beta'
|
||||
application-label-in:'Thunderbird Beta'
|
||||
application-label-is:'Thunderbird Beta'
|
||||
application-label-it:'Thunderbird Beta'
|
||||
application-label-iw:'Thunderbird Beta'
|
||||
application-label-ja:'Thunderbird Beta'
|
||||
application-label-ko:'Thunderbird Beta'
|
||||
application-label-lt:'Thunderbird Beta'
|
||||
application-label-lv:'Thunderbird Beta'
|
||||
application-label-nb:'Thunderbird Beta'
|
||||
application-label-nl:'Thunderbird Beta'
|
||||
application-label-nn:'Thunderbird Beta'
|
||||
application-label-pl:'Thunderbird Beta'
|
||||
application-label-pt-BR:'Thunderbird Beta'
|
||||
application-label-pt-PT:'Thunderbird Beta'
|
||||
application-label-pt:'Thunderbird Beta'
|
||||
application-label-ro:'Thunderbird Beta'
|
||||
application-label-ru:'Thunderbird Beta'
|
||||
application-label-sk:'Thunderbird Beta'
|
||||
application-label-sl:'Thunderbird Beta'
|
||||
application-label-sq:'Thunderbird Beta'
|
||||
application-label-sr:'Thunderbird Beta'
|
||||
application-label-sv:'Thunderbird Beta'
|
||||
application-label-tr:'Thunderbird Beta'
|
||||
application-label-uk:'Thunderbird Beta'
|
||||
application-label-vi:'Thunderbird Beta'
|
||||
application-label-zh-CN:'Thunderbird Beta'
|
||||
application-label-zh-TW:'Thunderbird Beta'
|
||||
application-label-zh:'Thunderbird Beta'
|
||||
application-label:'Thunderbird Beta'
|
||||
application: label='Thunderbird Beta' icon='res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
densities: '120' '160' '240' '320' '480' '640' '65534'
|
||||
feature-group: label=''
|
||||
install-location:'auto'
|
||||
launchable-activity: name='com.fsck.k9.activity.MessageList' label='' icon=''
|
||||
locales: '--_--' 'ar' 'be' 'bg' 'ca' 'co' 'cs' 'cy' 'da' 'de' 'el' 'en' 'en-GB' 'eo' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'fy' 'ga' 'gl' 'hr' 'hu' 'in' 'is' 'it' 'iw' 'ja' 'ko' 'lt' 'lv' 'nb' 'nl' 'nn' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'sk' 'sl' 'sq' 'sr' 'sv' 'tr' 'uk' 'vi' 'zh' 'zh-CN' 'zh-TW'
|
||||
main
|
||||
minSdkVersion:'21'
|
||||
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'
|
||||
other-activities
|
||||
other-receivers
|
||||
other-services
|
||||
package: name='net.thunderbird.android.beta' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
|
||||
property: name='android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE' value='This service is used to maintain a continuous connection to an IMAP server to be able to provide instant notifications to the user when a new email arrives. Firebase Cloud Messaging is not suitable for this task, neither are mechanisms like AndroidX WorkManager. Other foreground service types aren't a good fit for this use case.'
|
||||
provides-component:'app-widget'
|
||||
supports-any-density: 'true'
|
||||
supports-screens: 'small' 'normal' 'large' 'xlarge'
|
||||
targetSdkVersion:'35'
|
||||
uses-feature-not-required: name='android.hardware.camera'
|
||||
uses-feature-not-required: name='android.hardware.touchscreen'
|
||||
uses-library-not-required:'androidx.window.extensions'
|
||||
uses-library-not-required:'androidx.window.sidecar'
|
||||
uses-library-not-required:'com.sec.android.app.multiwindow'
|
||||
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
|
||||
uses-permission: name='android.permission.CAMERA'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_DATA_SYNC' maxSdkVersion='33'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_SPECIAL_USE'
|
||||
uses-permission: name='android.permission.INTERNET'
|
||||
uses-permission: name='android.permission.POST_NOTIFICATIONS'
|
||||
uses-permission: name='android.permission.READ_CONTACTS'
|
||||
uses-permission: name='android.permission.READ_SYNC_SETTINGS'
|
||||
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
|
||||
uses-permission: name='android.permission.SCHEDULE_EXACT_ALARM'
|
||||
uses-permission: name='android.permission.USE_BIOMETRIC'
|
||||
uses-permission: name='android.permission.USE_FINGERPRINT'
|
||||
uses-permission: name='android.permission.VIBRATE'
|
||||
uses-permission: name='android.permission.WAKE_LOCK'
|
||||
uses-permission: name='net.thunderbird.android.beta.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
|
||||
99
app-thunderbird/badging/fossDaily-badging.txt
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
application-icon-120:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-160:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-240:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-320:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-480:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-640:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-65534:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-label-ar:'Thunderbird Daily'
|
||||
application-label-be:'Thunderbird Daily'
|
||||
application-label-bg:'Thunderbird Daily'
|
||||
application-label-ca:'Thunderbird Daily'
|
||||
application-label-co:'Thunderbird Daily'
|
||||
application-label-cs:'Thunderbird Daily'
|
||||
application-label-cy:'Thunderbird Daily'
|
||||
application-label-da:'Thunderbird Daily'
|
||||
application-label-de:'Thunderbird Daily'
|
||||
application-label-el:'Thunderbird Daily'
|
||||
application-label-en-GB:'Thunderbird Daily'
|
||||
application-label-en:'Thunderbird Daily'
|
||||
application-label-eo:'Thunderbird Daily'
|
||||
application-label-es:'Thunderbird Daily'
|
||||
application-label-et:'Thunderbird Daily'
|
||||
application-label-eu:'Thunderbird Daily'
|
||||
application-label-fa:'Thunderbird Daily'
|
||||
application-label-fi:'Thunderbird Daily'
|
||||
application-label-fr:'Thunderbird Daily'
|
||||
application-label-fy:'Thunderbird Daily'
|
||||
application-label-ga:'Thunderbird Daily'
|
||||
application-label-gl:'Thunderbird Daily'
|
||||
application-label-hr:'Thunderbird Daily'
|
||||
application-label-hu:'Thunderbird Daily'
|
||||
application-label-in:'Thunderbird Daily'
|
||||
application-label-is:'Thunderbird Daily'
|
||||
application-label-it:'Thunderbird Daily'
|
||||
application-label-iw:'Thunderbird Daily'
|
||||
application-label-ja:'Thunderbird Daily'
|
||||
application-label-ko:'Thunderbird Daily'
|
||||
application-label-lt:'Thunderbird Daily'
|
||||
application-label-lv:'Thunderbird Daily'
|
||||
application-label-nb:'Thunderbird Daily'
|
||||
application-label-nl:'Thunderbird Daily'
|
||||
application-label-nn:'Thunderbird Daily'
|
||||
application-label-pl:'Thunderbird Daily'
|
||||
application-label-pt-BR:'Thunderbird Daily'
|
||||
application-label-pt-PT:'Thunderbird Daily'
|
||||
application-label-pt:'Thunderbird Daily'
|
||||
application-label-ro:'Thunderbird Daily'
|
||||
application-label-ru:'Thunderbird Daily'
|
||||
application-label-sk:'Thunderbird Daily'
|
||||
application-label-sl:'Thunderbird Daily'
|
||||
application-label-sq:'Thunderbird Daily'
|
||||
application-label-sr:'Thunderbird Daily'
|
||||
application-label-sv:'Thunderbird Daily'
|
||||
application-label-tr:'Thunderbird Daily'
|
||||
application-label-uk:'Thunderbird Daily'
|
||||
application-label-vi:'Thunderbird Daily'
|
||||
application-label-zh-CN:'Thunderbird Daily'
|
||||
application-label-zh-TW:'Thunderbird Daily'
|
||||
application-label-zh:'Thunderbird Daily'
|
||||
application-label:'Thunderbird Daily'
|
||||
application: label='Thunderbird Daily' icon='res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
densities: '120' '160' '240' '320' '480' '640' '65534'
|
||||
feature-group: label=''
|
||||
install-location:'auto'
|
||||
launchable-activity: name='com.fsck.k9.activity.MessageList' label='' icon=''
|
||||
locales: '--_--' 'ar' 'be' 'bg' 'ca' 'co' 'cs' 'cy' 'da' 'de' 'el' 'en' 'en-GB' 'eo' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'fy' 'ga' 'gl' 'hr' 'hu' 'in' 'is' 'it' 'iw' 'ja' 'ko' 'lt' 'lv' 'nb' 'nl' 'nn' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'sk' 'sl' 'sq' 'sr' 'sv' 'tr' 'uk' 'vi' 'zh' 'zh-CN' 'zh-TW'
|
||||
main
|
||||
minSdkVersion:'21'
|
||||
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'
|
||||
other-activities
|
||||
other-receivers
|
||||
other-services
|
||||
package: name='net.thunderbird.android.daily' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
|
||||
property: name='android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE' value='This service is used to maintain a continuous connection to an IMAP server to be able to provide instant notifications to the user when a new email arrives. Firebase Cloud Messaging is not suitable for this task, neither are mechanisms like AndroidX WorkManager. Other foreground service types aren't a good fit for this use case.'
|
||||
provides-component:'app-widget'
|
||||
supports-any-density: 'true'
|
||||
supports-screens: 'small' 'normal' 'large' 'xlarge'
|
||||
targetSdkVersion:'35'
|
||||
uses-feature-not-required: name='android.hardware.camera'
|
||||
uses-feature-not-required: name='android.hardware.touchscreen'
|
||||
uses-library-not-required:'androidx.window.extensions'
|
||||
uses-library-not-required:'androidx.window.sidecar'
|
||||
uses-library-not-required:'com.sec.android.app.multiwindow'
|
||||
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
|
||||
uses-permission: name='android.permission.CAMERA'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_DATA_SYNC' maxSdkVersion='33'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_SPECIAL_USE'
|
||||
uses-permission: name='android.permission.INTERNET'
|
||||
uses-permission: name='android.permission.POST_NOTIFICATIONS'
|
||||
uses-permission: name='android.permission.READ_CONTACTS'
|
||||
uses-permission: name='android.permission.READ_SYNC_SETTINGS'
|
||||
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
|
||||
uses-permission: name='android.permission.SCHEDULE_EXACT_ALARM'
|
||||
uses-permission: name='android.permission.USE_BIOMETRIC'
|
||||
uses-permission: name='android.permission.USE_FINGERPRINT'
|
||||
uses-permission: name='android.permission.VIBRATE'
|
||||
uses-permission: name='android.permission.WAKE_LOCK'
|
||||
uses-permission: name='net.thunderbird.android.daily.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
|
||||
99
app-thunderbird/badging/fossRelease-badging.txt
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
application-icon-120:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-160:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-240:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-320:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-480:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-640:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-65534:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-label-ar:'Thunderbird'
|
||||
application-label-be:'Thunderbird'
|
||||
application-label-bg:'Thunderbird'
|
||||
application-label-ca:'Thunderbird'
|
||||
application-label-co:'Thunderbird'
|
||||
application-label-cs:'Thunderbird'
|
||||
application-label-cy:'Thunderbird'
|
||||
application-label-da:'Thunderbird'
|
||||
application-label-de:'Thunderbird'
|
||||
application-label-el:'Thunderbird'
|
||||
application-label-en-GB:'Thunderbird'
|
||||
application-label-en:'Thunderbird'
|
||||
application-label-eo:'Thunderbird'
|
||||
application-label-es:'Thunderbird'
|
||||
application-label-et:'Thunderbird'
|
||||
application-label-eu:'Thunderbird'
|
||||
application-label-fa:'Thunderbird'
|
||||
application-label-fi:'Thunderbird'
|
||||
application-label-fr:'Thunderbird'
|
||||
application-label-fy:'Thunderbird'
|
||||
application-label-ga:'Thunderbird'
|
||||
application-label-gl:'Thunderbird'
|
||||
application-label-hr:'Thunderbird'
|
||||
application-label-hu:'Thunderbird'
|
||||
application-label-in:'Thunderbird'
|
||||
application-label-is:'Thunderbird'
|
||||
application-label-it:'Thunderbird'
|
||||
application-label-iw:'Thunderbird'
|
||||
application-label-ja:'Thunderbird'
|
||||
application-label-ko:'Thunderbird'
|
||||
application-label-lt:'Thunderbird'
|
||||
application-label-lv:'Thunderbird'
|
||||
application-label-nb:'Thunderbird'
|
||||
application-label-nl:'Thunderbird'
|
||||
application-label-nn:'Thunderbird'
|
||||
application-label-pl:'Thunderbird'
|
||||
application-label-pt-BR:'Thunderbird'
|
||||
application-label-pt-PT:'Thunderbird'
|
||||
application-label-pt:'Thunderbird'
|
||||
application-label-ro:'Thunderbird'
|
||||
application-label-ru:'Thunderbird'
|
||||
application-label-sk:'Thunderbird'
|
||||
application-label-sl:'Thunderbird'
|
||||
application-label-sq:'Thunderbird'
|
||||
application-label-sr:'Thunderbird'
|
||||
application-label-sv:'Thunderbird'
|
||||
application-label-tr:'Thunderbird'
|
||||
application-label-uk:'Thunderbird'
|
||||
application-label-vi:'Thunderbird'
|
||||
application-label-zh-CN:'Thunderbird'
|
||||
application-label-zh-TW:'Thunderbird'
|
||||
application-label-zh:'Thunderbird'
|
||||
application-label:'Thunderbird'
|
||||
application: label='Thunderbird' icon='res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
densities: '120' '160' '240' '320' '480' '640' '65534'
|
||||
feature-group: label=''
|
||||
install-location:'auto'
|
||||
launchable-activity: name='com.fsck.k9.activity.MessageList' label='' icon=''
|
||||
locales: '--_--' 'ar' 'be' 'bg' 'ca' 'co' 'cs' 'cy' 'da' 'de' 'el' 'en' 'en-GB' 'eo' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'fy' 'ga' 'gl' 'hr' 'hu' 'in' 'is' 'it' 'iw' 'ja' 'ko' 'lt' 'lv' 'nb' 'nl' 'nn' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'sk' 'sl' 'sq' 'sr' 'sv' 'tr' 'uk' 'vi' 'zh' 'zh-CN' 'zh-TW'
|
||||
main
|
||||
minSdkVersion:'21'
|
||||
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'
|
||||
other-activities
|
||||
other-receivers
|
||||
other-services
|
||||
package: name='net.thunderbird.android' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
|
||||
property: name='android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE' value='This service is used to maintain a continuous connection to an IMAP server to be able to provide instant notifications to the user when a new email arrives. Firebase Cloud Messaging is not suitable for this task, neither are mechanisms like AndroidX WorkManager. Other foreground service types aren't a good fit for this use case.'
|
||||
provides-component:'app-widget'
|
||||
supports-any-density: 'true'
|
||||
supports-screens: 'small' 'normal' 'large' 'xlarge'
|
||||
targetSdkVersion:'35'
|
||||
uses-feature-not-required: name='android.hardware.camera'
|
||||
uses-feature-not-required: name='android.hardware.touchscreen'
|
||||
uses-library-not-required:'androidx.window.extensions'
|
||||
uses-library-not-required:'androidx.window.sidecar'
|
||||
uses-library-not-required:'com.sec.android.app.multiwindow'
|
||||
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
|
||||
uses-permission: name='android.permission.CAMERA'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_DATA_SYNC' maxSdkVersion='33'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_SPECIAL_USE'
|
||||
uses-permission: name='android.permission.INTERNET'
|
||||
uses-permission: name='android.permission.POST_NOTIFICATIONS'
|
||||
uses-permission: name='android.permission.READ_CONTACTS'
|
||||
uses-permission: name='android.permission.READ_SYNC_SETTINGS'
|
||||
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
|
||||
uses-permission: name='android.permission.SCHEDULE_EXACT_ALARM'
|
||||
uses-permission: name='android.permission.USE_BIOMETRIC'
|
||||
uses-permission: name='android.permission.USE_FINGERPRINT'
|
||||
uses-permission: name='android.permission.VIBRATE'
|
||||
uses-permission: name='android.permission.WAKE_LOCK'
|
||||
uses-permission: name='net.thunderbird.android.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
|
||||
100
app-thunderbird/badging/fullBeta-badging.txt
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
application-icon-120:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-160:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-240:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-320:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-480:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-640:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-65534:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-label-ar:'Thunderbird Beta'
|
||||
application-label-be:'Thunderbird Beta'
|
||||
application-label-bg:'Thunderbird Beta'
|
||||
application-label-ca:'Thunderbird Beta'
|
||||
application-label-co:'Thunderbird Beta'
|
||||
application-label-cs:'Thunderbird Beta'
|
||||
application-label-cy:'Thunderbird Beta'
|
||||
application-label-da:'Thunderbird Beta'
|
||||
application-label-de:'Thunderbird Beta'
|
||||
application-label-el:'Thunderbird Beta'
|
||||
application-label-en-GB:'Thunderbird Beta'
|
||||
application-label-en:'Thunderbird Beta'
|
||||
application-label-eo:'Thunderbird Beta'
|
||||
application-label-es:'Thunderbird Beta'
|
||||
application-label-et:'Thunderbird Beta'
|
||||
application-label-eu:'Thunderbird Beta'
|
||||
application-label-fa:'Thunderbird Beta'
|
||||
application-label-fi:'Thunderbird Beta'
|
||||
application-label-fr:'Thunderbird Beta'
|
||||
application-label-fy:'Thunderbird Beta'
|
||||
application-label-ga:'Thunderbird Beta'
|
||||
application-label-gl:'Thunderbird Beta'
|
||||
application-label-hr:'Thunderbird Beta'
|
||||
application-label-hu:'Thunderbird Beta'
|
||||
application-label-in:'Thunderbird Beta'
|
||||
application-label-is:'Thunderbird Beta'
|
||||
application-label-it:'Thunderbird Beta'
|
||||
application-label-iw:'Thunderbird Beta'
|
||||
application-label-ja:'Thunderbird Beta'
|
||||
application-label-ko:'Thunderbird Beta'
|
||||
application-label-lt:'Thunderbird Beta'
|
||||
application-label-lv:'Thunderbird Beta'
|
||||
application-label-nb:'Thunderbird Beta'
|
||||
application-label-nl:'Thunderbird Beta'
|
||||
application-label-nn:'Thunderbird Beta'
|
||||
application-label-pl:'Thunderbird Beta'
|
||||
application-label-pt-BR:'Thunderbird Beta'
|
||||
application-label-pt-PT:'Thunderbird Beta'
|
||||
application-label-pt:'Thunderbird Beta'
|
||||
application-label-ro:'Thunderbird Beta'
|
||||
application-label-ru:'Thunderbird Beta'
|
||||
application-label-sk:'Thunderbird Beta'
|
||||
application-label-sl:'Thunderbird Beta'
|
||||
application-label-sq:'Thunderbird Beta'
|
||||
application-label-sr:'Thunderbird Beta'
|
||||
application-label-sv:'Thunderbird Beta'
|
||||
application-label-tr:'Thunderbird Beta'
|
||||
application-label-uk:'Thunderbird Beta'
|
||||
application-label-vi:'Thunderbird Beta'
|
||||
application-label-zh-CN:'Thunderbird Beta'
|
||||
application-label-zh-TW:'Thunderbird Beta'
|
||||
application-label-zh:'Thunderbird Beta'
|
||||
application-label:'Thunderbird Beta'
|
||||
application: label='Thunderbird Beta' icon='res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
densities: '120' '160' '240' '320' '480' '640' '65534'
|
||||
feature-group: label=''
|
||||
install-location:'auto'
|
||||
launchable-activity: name='com.fsck.k9.activity.MessageList' label='' icon=''
|
||||
locales: '--_--' 'ar' 'be' 'bg' 'ca' 'co' 'cs' 'cy' 'da' 'de' 'el' 'en' 'en-GB' 'eo' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'fy' 'ga' 'gl' 'hr' 'hu' 'in' 'is' 'it' 'iw' 'ja' 'ko' 'lt' 'lv' 'nb' 'nl' 'nn' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'sk' 'sl' 'sq' 'sr' 'sv' 'tr' 'uk' 'vi' 'zh' 'zh-CN' 'zh-TW'
|
||||
main
|
||||
minSdkVersion:'21'
|
||||
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'
|
||||
other-activities
|
||||
other-receivers
|
||||
other-services
|
||||
package: name='net.thunderbird.android.beta' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
|
||||
property: name='android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE' value='This service is used to maintain a continuous connection to an IMAP server to be able to provide instant notifications to the user when a new email arrives. Firebase Cloud Messaging is not suitable for this task, neither are mechanisms like AndroidX WorkManager. Other foreground service types aren't a good fit for this use case.'
|
||||
provides-component:'app-widget'
|
||||
supports-any-density: 'true'
|
||||
supports-screens: 'small' 'normal' 'large' 'xlarge'
|
||||
targetSdkVersion:'35'
|
||||
uses-feature-not-required: name='android.hardware.camera'
|
||||
uses-feature-not-required: name='android.hardware.touchscreen'
|
||||
uses-library-not-required:'androidx.window.extensions'
|
||||
uses-library-not-required:'androidx.window.sidecar'
|
||||
uses-library-not-required:'com.sec.android.app.multiwindow'
|
||||
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
|
||||
uses-permission: name='android.permission.CAMERA'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_DATA_SYNC' maxSdkVersion='33'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_SPECIAL_USE'
|
||||
uses-permission: name='android.permission.INTERNET'
|
||||
uses-permission: name='android.permission.POST_NOTIFICATIONS'
|
||||
uses-permission: name='android.permission.READ_CONTACTS'
|
||||
uses-permission: name='android.permission.READ_SYNC_SETTINGS'
|
||||
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
|
||||
uses-permission: name='android.permission.SCHEDULE_EXACT_ALARM'
|
||||
uses-permission: name='android.permission.USE_BIOMETRIC'
|
||||
uses-permission: name='android.permission.USE_FINGERPRINT'
|
||||
uses-permission: name='android.permission.VIBRATE'
|
||||
uses-permission: name='android.permission.WAKE_LOCK'
|
||||
uses-permission: name='com.android.vending.BILLING'
|
||||
uses-permission: name='net.thunderbird.android.beta.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
|
||||
100
app-thunderbird/badging/fullDaily-badging.txt
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
application-icon-120:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-160:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-240:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-320:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-480:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-640:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-65534:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-label-ar:'Thunderbird Daily'
|
||||
application-label-be:'Thunderbird Daily'
|
||||
application-label-bg:'Thunderbird Daily'
|
||||
application-label-ca:'Thunderbird Daily'
|
||||
application-label-co:'Thunderbird Daily'
|
||||
application-label-cs:'Thunderbird Daily'
|
||||
application-label-cy:'Thunderbird Daily'
|
||||
application-label-da:'Thunderbird Daily'
|
||||
application-label-de:'Thunderbird Daily'
|
||||
application-label-el:'Thunderbird Daily'
|
||||
application-label-en-GB:'Thunderbird Daily'
|
||||
application-label-en:'Thunderbird Daily'
|
||||
application-label-eo:'Thunderbird Daily'
|
||||
application-label-es:'Thunderbird Daily'
|
||||
application-label-et:'Thunderbird Daily'
|
||||
application-label-eu:'Thunderbird Daily'
|
||||
application-label-fa:'Thunderbird Daily'
|
||||
application-label-fi:'Thunderbird Daily'
|
||||
application-label-fr:'Thunderbird Daily'
|
||||
application-label-fy:'Thunderbird Daily'
|
||||
application-label-ga:'Thunderbird Daily'
|
||||
application-label-gl:'Thunderbird Daily'
|
||||
application-label-hr:'Thunderbird Daily'
|
||||
application-label-hu:'Thunderbird Daily'
|
||||
application-label-in:'Thunderbird Daily'
|
||||
application-label-is:'Thunderbird Daily'
|
||||
application-label-it:'Thunderbird Daily'
|
||||
application-label-iw:'Thunderbird Daily'
|
||||
application-label-ja:'Thunderbird Daily'
|
||||
application-label-ko:'Thunderbird Daily'
|
||||
application-label-lt:'Thunderbird Daily'
|
||||
application-label-lv:'Thunderbird Daily'
|
||||
application-label-nb:'Thunderbird Daily'
|
||||
application-label-nl:'Thunderbird Daily'
|
||||
application-label-nn:'Thunderbird Daily'
|
||||
application-label-pl:'Thunderbird Daily'
|
||||
application-label-pt-BR:'Thunderbird Daily'
|
||||
application-label-pt-PT:'Thunderbird Daily'
|
||||
application-label-pt:'Thunderbird Daily'
|
||||
application-label-ro:'Thunderbird Daily'
|
||||
application-label-ru:'Thunderbird Daily'
|
||||
application-label-sk:'Thunderbird Daily'
|
||||
application-label-sl:'Thunderbird Daily'
|
||||
application-label-sq:'Thunderbird Daily'
|
||||
application-label-sr:'Thunderbird Daily'
|
||||
application-label-sv:'Thunderbird Daily'
|
||||
application-label-tr:'Thunderbird Daily'
|
||||
application-label-uk:'Thunderbird Daily'
|
||||
application-label-vi:'Thunderbird Daily'
|
||||
application-label-zh-CN:'Thunderbird Daily'
|
||||
application-label-zh-TW:'Thunderbird Daily'
|
||||
application-label-zh:'Thunderbird Daily'
|
||||
application-label:'Thunderbird Daily'
|
||||
application: label='Thunderbird Daily' icon='res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
densities: '120' '160' '240' '320' '480' '640' '65534'
|
||||
feature-group: label=''
|
||||
install-location:'auto'
|
||||
launchable-activity: name='com.fsck.k9.activity.MessageList' label='' icon=''
|
||||
locales: '--_--' 'ar' 'be' 'bg' 'ca' 'co' 'cs' 'cy' 'da' 'de' 'el' 'en' 'en-GB' 'eo' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'fy' 'ga' 'gl' 'hr' 'hu' 'in' 'is' 'it' 'iw' 'ja' 'ko' 'lt' 'lv' 'nb' 'nl' 'nn' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'sk' 'sl' 'sq' 'sr' 'sv' 'tr' 'uk' 'vi' 'zh' 'zh-CN' 'zh-TW'
|
||||
main
|
||||
minSdkVersion:'21'
|
||||
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'
|
||||
other-activities
|
||||
other-receivers
|
||||
other-services
|
||||
package: name='net.thunderbird.android.daily' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
|
||||
property: name='android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE' value='This service is used to maintain a continuous connection to an IMAP server to be able to provide instant notifications to the user when a new email arrives. Firebase Cloud Messaging is not suitable for this task, neither are mechanisms like AndroidX WorkManager. Other foreground service types aren't a good fit for this use case.'
|
||||
provides-component:'app-widget'
|
||||
supports-any-density: 'true'
|
||||
supports-screens: 'small' 'normal' 'large' 'xlarge'
|
||||
targetSdkVersion:'35'
|
||||
uses-feature-not-required: name='android.hardware.camera'
|
||||
uses-feature-not-required: name='android.hardware.touchscreen'
|
||||
uses-library-not-required:'androidx.window.extensions'
|
||||
uses-library-not-required:'androidx.window.sidecar'
|
||||
uses-library-not-required:'com.sec.android.app.multiwindow'
|
||||
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
|
||||
uses-permission: name='android.permission.CAMERA'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_DATA_SYNC' maxSdkVersion='33'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_SPECIAL_USE'
|
||||
uses-permission: name='android.permission.INTERNET'
|
||||
uses-permission: name='android.permission.POST_NOTIFICATIONS'
|
||||
uses-permission: name='android.permission.READ_CONTACTS'
|
||||
uses-permission: name='android.permission.READ_SYNC_SETTINGS'
|
||||
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
|
||||
uses-permission: name='android.permission.SCHEDULE_EXACT_ALARM'
|
||||
uses-permission: name='android.permission.USE_BIOMETRIC'
|
||||
uses-permission: name='android.permission.USE_FINGERPRINT'
|
||||
uses-permission: name='android.permission.VIBRATE'
|
||||
uses-permission: name='android.permission.WAKE_LOCK'
|
||||
uses-permission: name='com.android.vending.BILLING'
|
||||
uses-permission: name='net.thunderbird.android.daily.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
|
||||
100
app-thunderbird/badging/fullRelease-badging.txt
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
application-icon-120:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-160:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-240:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-320:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-480:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-640:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-icon-65534:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
application-label-ar:'Thunderbird'
|
||||
application-label-be:'Thunderbird'
|
||||
application-label-bg:'Thunderbird'
|
||||
application-label-ca:'Thunderbird'
|
||||
application-label-co:'Thunderbird'
|
||||
application-label-cs:'Thunderbird'
|
||||
application-label-cy:'Thunderbird'
|
||||
application-label-da:'Thunderbird'
|
||||
application-label-de:'Thunderbird'
|
||||
application-label-el:'Thunderbird'
|
||||
application-label-en-GB:'Thunderbird'
|
||||
application-label-en:'Thunderbird'
|
||||
application-label-eo:'Thunderbird'
|
||||
application-label-es:'Thunderbird'
|
||||
application-label-et:'Thunderbird'
|
||||
application-label-eu:'Thunderbird'
|
||||
application-label-fa:'Thunderbird'
|
||||
application-label-fi:'Thunderbird'
|
||||
application-label-fr:'Thunderbird'
|
||||
application-label-fy:'Thunderbird'
|
||||
application-label-ga:'Thunderbird'
|
||||
application-label-gl:'Thunderbird'
|
||||
application-label-hr:'Thunderbird'
|
||||
application-label-hu:'Thunderbird'
|
||||
application-label-in:'Thunderbird'
|
||||
application-label-is:'Thunderbird'
|
||||
application-label-it:'Thunderbird'
|
||||
application-label-iw:'Thunderbird'
|
||||
application-label-ja:'Thunderbird'
|
||||
application-label-ko:'Thunderbird'
|
||||
application-label-lt:'Thunderbird'
|
||||
application-label-lv:'Thunderbird'
|
||||
application-label-nb:'Thunderbird'
|
||||
application-label-nl:'Thunderbird'
|
||||
application-label-nn:'Thunderbird'
|
||||
application-label-pl:'Thunderbird'
|
||||
application-label-pt-BR:'Thunderbird'
|
||||
application-label-pt-PT:'Thunderbird'
|
||||
application-label-pt:'Thunderbird'
|
||||
application-label-ro:'Thunderbird'
|
||||
application-label-ru:'Thunderbird'
|
||||
application-label-sk:'Thunderbird'
|
||||
application-label-sl:'Thunderbird'
|
||||
application-label-sq:'Thunderbird'
|
||||
application-label-sr:'Thunderbird'
|
||||
application-label-sv:'Thunderbird'
|
||||
application-label-tr:'Thunderbird'
|
||||
application-label-uk:'Thunderbird'
|
||||
application-label-vi:'Thunderbird'
|
||||
application-label-zh-CN:'Thunderbird'
|
||||
application-label-zh-TW:'Thunderbird'
|
||||
application-label-zh:'Thunderbird'
|
||||
application-label:'Thunderbird'
|
||||
application: label='Thunderbird' icon='res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||
densities: '120' '160' '240' '320' '480' '640' '65534'
|
||||
feature-group: label=''
|
||||
install-location:'auto'
|
||||
launchable-activity: name='com.fsck.k9.activity.MessageList' label='' icon=''
|
||||
locales: '--_--' 'ar' 'be' 'bg' 'ca' 'co' 'cs' 'cy' 'da' 'de' 'el' 'en' 'en-GB' 'eo' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'fy' 'ga' 'gl' 'hr' 'hu' 'in' 'is' 'it' 'iw' 'ja' 'ko' 'lt' 'lv' 'nb' 'nl' 'nn' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'sk' 'sl' 'sq' 'sr' 'sv' 'tr' 'uk' 'vi' 'zh' 'zh-CN' 'zh-TW'
|
||||
main
|
||||
minSdkVersion:'21'
|
||||
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'
|
||||
other-activities
|
||||
other-receivers
|
||||
other-services
|
||||
package: name='net.thunderbird.android' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
|
||||
property: name='android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE' value='This service is used to maintain a continuous connection to an IMAP server to be able to provide instant notifications to the user when a new email arrives. Firebase Cloud Messaging is not suitable for this task, neither are mechanisms like AndroidX WorkManager. Other foreground service types aren't a good fit for this use case.'
|
||||
provides-component:'app-widget'
|
||||
supports-any-density: 'true'
|
||||
supports-screens: 'small' 'normal' 'large' 'xlarge'
|
||||
targetSdkVersion:'35'
|
||||
uses-feature-not-required: name='android.hardware.camera'
|
||||
uses-feature-not-required: name='android.hardware.touchscreen'
|
||||
uses-library-not-required:'androidx.window.extensions'
|
||||
uses-library-not-required:'androidx.window.sidecar'
|
||||
uses-library-not-required:'com.sec.android.app.multiwindow'
|
||||
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
|
||||
uses-permission: name='android.permission.CAMERA'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_DATA_SYNC' maxSdkVersion='33'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_SPECIAL_USE'
|
||||
uses-permission: name='android.permission.INTERNET'
|
||||
uses-permission: name='android.permission.POST_NOTIFICATIONS'
|
||||
uses-permission: name='android.permission.READ_CONTACTS'
|
||||
uses-permission: name='android.permission.READ_SYNC_SETTINGS'
|
||||
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
|
||||
uses-permission: name='android.permission.SCHEDULE_EXACT_ALARM'
|
||||
uses-permission: name='android.permission.USE_BIOMETRIC'
|
||||
uses-permission: name='android.permission.USE_FINGERPRINT'
|
||||
uses-permission: name='android.permission.VIBRATE'
|
||||
uses-permission: name='android.permission.WAKE_LOCK'
|
||||
uses-permission: name='com.android.vending.BILLING'
|
||||
uses-permission: name='net.thunderbird.android.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
|
||||
279
app-thunderbird/build.gradle.kts
Normal file
|
|
@ -0,0 +1,279 @@
|
|||
plugins {
|
||||
id(ThunderbirdPlugins.App.androidCompose)
|
||||
alias(libs.plugins.dependency.guard)
|
||||
id("thunderbird.app.version.info")
|
||||
id("thunderbird.quality.badging")
|
||||
}
|
||||
|
||||
val testCoverageEnabled: Boolean by extra
|
||||
if (testCoverageEnabled) {
|
||||
apply(plugin = "jacoco")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "net.thunderbird.android"
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "net.thunderbird.android"
|
||||
testApplicationId = "net.thunderbird.android.tests"
|
||||
|
||||
versionCode = 16
|
||||
versionName = "13.0"
|
||||
|
||||
buildConfigField("String", "CLIENT_INFO_APP_NAME", "\"Thunderbird for Android\"")
|
||||
}
|
||||
|
||||
androidResources {
|
||||
// Keep in sync with the resource string array "supported_languages"
|
||||
localeFilters += listOf(
|
||||
"ar",
|
||||
"be",
|
||||
"bg",
|
||||
"ca",
|
||||
"co",
|
||||
"cs",
|
||||
"cy",
|
||||
"da",
|
||||
"de",
|
||||
"el",
|
||||
"en",
|
||||
"en-rGB",
|
||||
"eo",
|
||||
"es",
|
||||
"et",
|
||||
"eu",
|
||||
"fa",
|
||||
"fi",
|
||||
"fr",
|
||||
"fy",
|
||||
"ga",
|
||||
"gl",
|
||||
"hr",
|
||||
"hu",
|
||||
"in",
|
||||
"is",
|
||||
"it",
|
||||
"iw",
|
||||
"ja",
|
||||
"ko",
|
||||
"lt",
|
||||
"lv",
|
||||
"nb",
|
||||
"nl",
|
||||
"nn",
|
||||
"pl",
|
||||
"pt-rBR",
|
||||
"pt-rPT",
|
||||
"ro",
|
||||
"ru",
|
||||
"sl",
|
||||
"sk",
|
||||
"sq",
|
||||
"sr",
|
||||
"sv",
|
||||
"tr",
|
||||
"uk",
|
||||
"vi",
|
||||
"zh-rCN",
|
||||
"zh-rTW",
|
||||
)
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
val useUploadKey = properties.getOrDefault("tb.useUploadKey", "true") == "true"
|
||||
|
||||
createSigningConfig(project, SigningType.TB_RELEASE, isUpload = useUploadKey)
|
||||
createSigningConfig(project, SigningType.TB_BETA, isUpload = useUploadKey)
|
||||
createSigningConfig(project, SigningType.TB_DAILY, isUpload = useUploadKey)
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
applicationIdSuffix = ".debug"
|
||||
versionNameSuffix = "-SNAPSHOT"
|
||||
|
||||
isMinifyEnabled = false
|
||||
isShrinkResources = false
|
||||
isDebuggable = true
|
||||
|
||||
buildConfigField("String", "GLEAN_RELEASE_CHANNEL", "null")
|
||||
}
|
||||
|
||||
release {
|
||||
signingConfig = signingConfigs.getByType(SigningType.TB_RELEASE)
|
||||
|
||||
isMinifyEnabled = true
|
||||
isShrinkResources = true
|
||||
isDebuggable = false
|
||||
|
||||
proguardFiles(
|
||||
getDefaultProguardFile("proguard-android.txt"),
|
||||
"proguard-rules.pro",
|
||||
)
|
||||
|
||||
buildConfigField("String", "GLEAN_RELEASE_CHANNEL", "\"release\"")
|
||||
}
|
||||
|
||||
create("beta") {
|
||||
signingConfig = signingConfigs.getByType(SigningType.TB_BETA)
|
||||
|
||||
applicationIdSuffix = ".beta"
|
||||
|
||||
isMinifyEnabled = true
|
||||
isShrinkResources = true
|
||||
isDebuggable = false
|
||||
|
||||
matchingFallbacks += listOf("release")
|
||||
|
||||
proguardFiles(
|
||||
getDefaultProguardFile("proguard-android.txt"),
|
||||
"proguard-rules.pro",
|
||||
)
|
||||
|
||||
buildConfigField("String", "GLEAN_RELEASE_CHANNEL", "\"beta\"")
|
||||
}
|
||||
|
||||
create("daily") {
|
||||
signingConfig = signingConfigs.getByType(SigningType.TB_DAILY)
|
||||
|
||||
applicationIdSuffix = ".daily"
|
||||
versionNameSuffix = "a1"
|
||||
|
||||
isMinifyEnabled = true
|
||||
isShrinkResources = true
|
||||
isDebuggable = false
|
||||
|
||||
matchingFallbacks += listOf("release")
|
||||
|
||||
proguardFiles(
|
||||
getDefaultProguardFile("proguard-android.txt"),
|
||||
"proguard-rules.pro",
|
||||
)
|
||||
|
||||
// See https://bugzilla.mozilla.org/show_bug.cgi?id=1918151
|
||||
buildConfigField("String", "GLEAN_RELEASE_CHANNEL", "\"nightly\"")
|
||||
}
|
||||
}
|
||||
|
||||
flavorDimensions += listOf("app")
|
||||
productFlavors {
|
||||
create("foss") {
|
||||
dimension = "app"
|
||||
buildConfigField("String", "PRODUCT_FLAVOR_APP", "\"foss\"")
|
||||
}
|
||||
|
||||
create("full") {
|
||||
dimension = "app"
|
||||
buildConfigField("String", "PRODUCT_FLAVOR_APP", "\"full\"")
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("UnstableApiUsage")
|
||||
bundle {
|
||||
language {
|
||||
// Don't split by language. Otherwise our in-app language switcher won't work.
|
||||
enableSplit = false
|
||||
}
|
||||
}
|
||||
|
||||
packaging {
|
||||
jniLibs {
|
||||
excludes += listOf("kotlin/**")
|
||||
}
|
||||
|
||||
resources {
|
||||
excludes += listOf(
|
||||
"META-INF/*.kotlin_module",
|
||||
"kotlin/**",
|
||||
"DebugProbesKt.bin",
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
androidComponents {
|
||||
onVariants(selector().withBuildType("release")) { variant ->
|
||||
variant.packaging.resources.excludes.addAll(
|
||||
"META-INF/*.version",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize placeholders for the product flavor and build type combinations needed for dependency declarations.
|
||||
// They are required to avoid "Unresolved configuration" errors.
|
||||
val fullDebugImplementation by configurations.creating
|
||||
val fullDailyImplementation by configurations.creating
|
||||
val fullBetaImplementation by configurations.creating
|
||||
val fullReleaseImplementation by configurations.creating
|
||||
|
||||
dependencies {
|
||||
implementation(projects.appCommon)
|
||||
implementation(projects.core.ui.compose.theme2.thunderbird)
|
||||
implementation(projects.core.ui.legacy.theme2.thunderbird)
|
||||
implementation(projects.feature.launcher)
|
||||
|
||||
implementation(projects.legacy.core)
|
||||
implementation(projects.legacy.ui.legacy)
|
||||
|
||||
implementation(projects.core.featureflag)
|
||||
|
||||
implementation(projects.feature.account.settings.impl)
|
||||
implementation(projects.feature.mail.message.list)
|
||||
|
||||
implementation(projects.feature.widget.messageList)
|
||||
implementation(projects.feature.widget.messageListGlance)
|
||||
implementation(projects.feature.widget.shortcut)
|
||||
implementation(projects.feature.widget.unread)
|
||||
|
||||
debugImplementation(projects.feature.telemetry.noop)
|
||||
"dailyImplementation"(projects.feature.telemetry.noop)
|
||||
"betaImplementation"(projects.feature.telemetry.noop)
|
||||
releaseImplementation(projects.feature.telemetry.noop)
|
||||
|
||||
implementation(libs.androidx.work.runtime)
|
||||
|
||||
implementation(projects.feature.autodiscovery.api)
|
||||
debugImplementation(projects.backend.demo)
|
||||
debugImplementation(projects.feature.autodiscovery.demo)
|
||||
|
||||
"fossImplementation"(projects.feature.funding.link)
|
||||
|
||||
fullDebugImplementation(projects.feature.funding.googleplay)
|
||||
fullDailyImplementation(projects.feature.funding.googleplay)
|
||||
fullBetaImplementation(projects.feature.funding.googleplay)
|
||||
fullReleaseImplementation(projects.feature.funding.googleplay)
|
||||
|
||||
implementation(projects.feature.onboarding.migration.thunderbird)
|
||||
implementation(projects.feature.migration.launcher.thunderbird)
|
||||
|
||||
// TODO remove once OAuth ids have been moved from TBD to TBA
|
||||
"betaImplementation"(libs.appauth)
|
||||
releaseImplementation(libs.appauth)
|
||||
|
||||
// Required for DependencyInjectionTest
|
||||
testImplementation(projects.feature.account.api)
|
||||
testImplementation(projects.feature.account.common)
|
||||
testImplementation(projects.plugins.openpgpApiLib.openpgpApi)
|
||||
testImplementation(libs.appauth)
|
||||
}
|
||||
|
||||
dependencyGuard {
|
||||
configuration("fossDailyRuntimeClasspath")
|
||||
configuration("fossBetaRuntimeClasspath")
|
||||
configuration("fossReleaseRuntimeClasspath")
|
||||
|
||||
configuration("fullDailyRuntimeClasspath")
|
||||
configuration("fullBetaRuntimeClasspath")
|
||||
configuration("fullReleaseRuntimeClasspath")
|
||||
}
|
||||
|
||||
tasks.register("printConfigurations") {
|
||||
doLast {
|
||||
configurations.forEach { configuration ->
|
||||
println("Configuration: ${configuration.name}")
|
||||
configuration.dependencies.forEach { dependency ->
|
||||
println(" - ${dependency.group}:${dependency.name}:${dependency.version}")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
293
app-thunderbird/dependencies/fossBetaRuntimeClasspath.txt
Normal file
|
|
@ -0,0 +1,293 @@
|
|||
androidx.activity:activity-compose:1.10.1
|
||||
androidx.activity:activity-ktx:1.10.1
|
||||
androidx.activity:activity:1.10.1
|
||||
androidx.annotation:annotation-experimental:1.4.1
|
||||
androidx.annotation:annotation-jvm:1.9.1
|
||||
androidx.annotation:annotation:1.9.1
|
||||
androidx.appcompat:appcompat-resources:1.7.1
|
||||
androidx.appcompat:appcompat:1.7.1
|
||||
androidx.arch.core:core-common:2.2.0
|
||||
androidx.arch.core:core-runtime:2.2.0
|
||||
androidx.autofill:autofill:1.3.0
|
||||
androidx.biometric:biometric:1.1.0
|
||||
androidx.browser:browser:1.3.0
|
||||
androidx.camera:camera-camera2:1.4.2
|
||||
androidx.camera:camera-core:1.4.2
|
||||
androidx.camera:camera-lifecycle:1.4.2
|
||||
androidx.camera:camera-video:1.4.2
|
||||
androidx.camera:camera-view:1.4.2
|
||||
androidx.cardview:cardview:1.0.0
|
||||
androidx.collection:collection-jvm:1.5.0
|
||||
androidx.collection:collection-ktx:1.5.0
|
||||
androidx.collection:collection:1.5.0
|
||||
androidx.compose.animation:animation-android:1.8.3
|
||||
androidx.compose.animation:animation-core-android:1.8.3
|
||||
androidx.compose.animation:animation-core:1.8.3
|
||||
androidx.compose.animation:animation:1.8.3
|
||||
androidx.compose.foundation:foundation-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout:1.8.3
|
||||
androidx.compose.foundation:foundation:1.8.3
|
||||
androidx.compose.material3.adaptive:adaptive-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive:1.1.0
|
||||
androidx.compose.material3:material3-android:1.3.2
|
||||
androidx.compose.material3:material3:1.3.2
|
||||
androidx.compose.material:material-icons-core-android:1.7.8
|
||||
androidx.compose.material:material-icons-core:1.7.8
|
||||
androidx.compose.material:material-icons-extended-android:1.7.8
|
||||
androidx.compose.material:material-icons-extended:1.7.8
|
||||
androidx.compose.material:material-ripple-android:1.8.3
|
||||
androidx.compose.material:material-ripple:1.8.3
|
||||
androidx.compose.runtime:runtime-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable:1.8.3
|
||||
androidx.compose.runtime:runtime:1.8.3
|
||||
androidx.compose.ui:ui-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry:1.8.3
|
||||
androidx.compose.ui:ui-graphics-android:1.8.3
|
||||
androidx.compose.ui:ui-graphics:1.8.3
|
||||
androidx.compose.ui:ui-text-android:1.8.3
|
||||
androidx.compose.ui:ui-text:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview-android:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview:1.8.3
|
||||
androidx.compose.ui:ui-unit-android:1.8.3
|
||||
androidx.compose.ui:ui-unit:1.8.3
|
||||
androidx.compose.ui:ui-util-android:1.8.3
|
||||
androidx.compose.ui:ui-util:1.8.3
|
||||
androidx.compose.ui:ui:1.8.3
|
||||
androidx.compose:compose-bom:2025.07.00
|
||||
androidx.concurrent:concurrent-futures-ktx:1.1.0
|
||||
androidx.concurrent:concurrent-futures:1.1.0
|
||||
androidx.constraintlayout:constraintlayout-core:1.1.1
|
||||
androidx.constraintlayout:constraintlayout:2.2.1
|
||||
androidx.coordinatorlayout:coordinatorlayout:1.3.0
|
||||
androidx.core:core-ktx:1.16.0
|
||||
androidx.core:core-remoteviews:1.1.0
|
||||
androidx.core:core-splashscreen:1.0.1
|
||||
androidx.core:core-viewtree:1.0.0
|
||||
androidx.core:core:1.16.0
|
||||
androidx.cursoradapter:cursoradapter:1.0.0
|
||||
androidx.customview:customview-poolingcontainer:1.0.0
|
||||
androidx.customview:customview:1.1.0
|
||||
androidx.datastore:datastore-core:1.0.0
|
||||
androidx.datastore:datastore-preferences-core:1.0.0
|
||||
androidx.datastore:datastore-preferences:1.0.0
|
||||
androidx.datastore:datastore:1.0.0
|
||||
androidx.documentfile:documentfile:1.0.0
|
||||
androidx.drawerlayout:drawerlayout:1.1.1
|
||||
androidx.dynamicanimation:dynamicanimation:1.0.0
|
||||
androidx.emoji2:emoji2-views-helper:1.4.0
|
||||
androidx.emoji2:emoji2:1.4.0
|
||||
androidx.exifinterface:exifinterface:1.4.1
|
||||
androidx.fragment:fragment-compose:1.8.8
|
||||
androidx.fragment:fragment-ktx:1.8.8
|
||||
androidx.fragment:fragment:1.8.8
|
||||
androidx.glance:glance-appwidget-external-protobuf:1.1.1
|
||||
androidx.glance:glance-appwidget-proto:1.1.1
|
||||
androidx.glance:glance-appwidget:1.1.1
|
||||
androidx.glance:glance-material3:1.1.1
|
||||
androidx.glance:glance:1.1.1
|
||||
androidx.graphics:graphics-path:1.0.1
|
||||
androidx.interpolator:interpolator:1.0.0
|
||||
androidx.legacy:legacy-support-core-utils:1.0.0
|
||||
androidx.lifecycle:lifecycle-common-java8:2.9.2
|
||||
androidx.lifecycle:lifecycle-common-jvm:2.9.2
|
||||
androidx.lifecycle:lifecycle-common:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata:2.9.2
|
||||
androidx.lifecycle:lifecycle-process:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime:2.9.2
|
||||
androidx.lifecycle:lifecycle-service:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel:2.9.2
|
||||
androidx.loader:loader:1.0.0
|
||||
androidx.localbroadcastmanager:localbroadcastmanager:1.1.0
|
||||
androidx.navigation:navigation-common-android:2.9.3
|
||||
androidx.navigation:navigation-common:2.9.3
|
||||
androidx.navigation:navigation-compose-android:2.9.3
|
||||
androidx.navigation:navigation-compose:2.9.3
|
||||
androidx.navigation:navigation-fragment:2.9.3
|
||||
androidx.navigation:navigation-runtime-android:2.9.3
|
||||
androidx.navigation:navigation-runtime:2.9.3
|
||||
androidx.navigation:navigation-ui:2.9.3
|
||||
androidx.preference:preference:1.2.1
|
||||
androidx.print:print:1.0.0
|
||||
androidx.profileinstaller:profileinstaller:1.4.1
|
||||
androidx.recyclerview:recyclerview:1.4.0
|
||||
androidx.resourceinspection:resourceinspection-annotation:1.0.1
|
||||
androidx.room:room-common:2.6.1
|
||||
androidx.room:room-ktx:2.6.1
|
||||
androidx.room:room-runtime:2.6.1
|
||||
androidx.savedstate:savedstate-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose:1.3.1
|
||||
androidx.savedstate:savedstate-ktx:1.3.1
|
||||
androidx.savedstate:savedstate:1.3.1
|
||||
androidx.slidingpanelayout:slidingpanelayout:1.2.0
|
||||
androidx.sqlite:sqlite-framework:2.4.0
|
||||
androidx.sqlite:sqlite:2.4.0
|
||||
androidx.startup:startup-runtime:1.1.1
|
||||
androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
|
||||
androidx.tracing:tracing-ktx:1.2.0
|
||||
androidx.tracing:tracing:1.2.0
|
||||
androidx.transition:transition:1.5.0
|
||||
androidx.vectordrawable:vectordrawable-animated:1.2.0
|
||||
androidx.vectordrawable:vectordrawable:1.2.0
|
||||
androidx.versionedparcelable:versionedparcelable:1.1.1
|
||||
androidx.viewpager2:viewpager2:1.1.0-beta02
|
||||
androidx.viewpager:viewpager:1.0.0
|
||||
androidx.webkit:webkit:1.14.0
|
||||
androidx.window.extensions.core:core:1.0.0
|
||||
androidx.window:window-core-android:1.3.0
|
||||
androidx.window:window-core:1.3.0
|
||||
androidx.window:window:1.3.0
|
||||
androidx.work:work-runtime-ktx:2.10.3
|
||||
androidx.work:work-runtime:2.10.3
|
||||
co.touchlab:stately-concurrency-jvm:2.1.0
|
||||
co.touchlab:stately-concurrency:2.1.0
|
||||
co.touchlab:stately-concurrent-collections-jvm:2.1.0
|
||||
co.touchlab:stately-concurrent-collections:2.1.0
|
||||
co.touchlab:stately-strict-jvm:2.1.0
|
||||
co.touchlab:stately-strict:2.1.0
|
||||
com.beetstra.jutf7:jutf7:1.0.0
|
||||
com.github.ByteHamster:SearchPreference:2.7.3
|
||||
com.github.bumptech.glide:annotations:4.16.0
|
||||
com.github.bumptech.glide:disklrucache:4.16.0
|
||||
com.github.bumptech.glide:gifdecoder:4.16.0
|
||||
com.github.bumptech.glide:glide:4.16.0
|
||||
com.github.skydoves:landscapist-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3:2.5.1
|
||||
com.github.skydoves:landscapist:2.5.1
|
||||
com.google.android.flexbox:flexbox:3.0.0
|
||||
com.google.android.material:material:1.12.0
|
||||
com.google.auto.value:auto-value-annotations:1.6.3
|
||||
com.google.errorprone:error_prone_annotations:2.15.0
|
||||
com.google.guava:listenablefuture:1.0
|
||||
com.google.zxing:core:3.5.3
|
||||
com.jakewharton.timber:timber:5.0.1
|
||||
com.jcraft:jzlib:1.0.7
|
||||
com.mikepenz:fastadapter-extensions-drag:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-expandable:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-swipe:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-utils:5.7.0
|
||||
com.mikepenz:fastadapter:5.7.0
|
||||
com.squareup.moshi:moshi:1.15.2
|
||||
com.squareup.okhttp3:okhttp:4.12.0
|
||||
com.squareup.okio:okio-jvm:3.16.0
|
||||
com.squareup.okio:okio:3.16.0
|
||||
com.takisoft.colorpicker:colorpicker:1.0.0
|
||||
com.takisoft.datetimepicker:datetimepicker:1.0.2
|
||||
com.takisoft.preferencex:preferencex-colorpicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex-datetimepicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex:1.1.0
|
||||
commons-io:commons-io:2.20.0
|
||||
de.cketti.library.changelog:ckchangelog-core:2.0.0-beta02
|
||||
de.cketti.safecontentresolver:safe-content-resolver-v21:1.0.0
|
||||
de.hdodenhof:circleimageview:3.1.0
|
||||
io.coil-kt.coil3:coil-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core:3.2.0
|
||||
io.coil-kt.coil3:coil-gif:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp-jvm:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp:3.2.0
|
||||
io.coil-kt.coil3:coil-video:3.2.0
|
||||
io.coil-kt.coil3:coil:3.2.0
|
||||
io.insert-koin:koin-android:4.1.0
|
||||
io.insert-koin:koin-androidx-compose:4.1.0
|
||||
io.insert-koin:koin-bom:4.1.0
|
||||
io.insert-koin:koin-compose-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel:4.1.0
|
||||
io.insert-koin:koin-compose:4.1.0
|
||||
io.insert-koin:koin-core-jvm:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel:4.1.0
|
||||
io.insert-koin:koin-core:4.1.0
|
||||
net.jcip:jcip-annotations:1.0
|
||||
net.openid:appauth:0.11.1
|
||||
org.apache.commons:commons-lang3:3.7
|
||||
org.apache.commons:commons-text:1.3
|
||||
org.apache.httpcomponents.client5:httpclient5:5.5
|
||||
org.apache.httpcomponents.core5:httpcore5-h2:5.3.4
|
||||
org.apache.httpcomponents.core5:httpcore5:5.3.4
|
||||
org.apache.james:apache-mime4j-core:0.8.13
|
||||
org.apache.james:apache-mime4j-dom:0.8.13
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-common:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel:2.9.1
|
||||
org.jetbrains.androidx.savedstate:savedstate:1.3.1
|
||||
org.jetbrains.compose.animation:animation-core:1.8.2
|
||||
org.jetbrains.compose.animation:animation:1.8.2
|
||||
org.jetbrains.compose.annotation-internal:annotation:1.8.2
|
||||
org.jetbrains.compose.collection-internal:collection:1.8.2
|
||||
org.jetbrains.compose.components:components-resources-android:1.8.2
|
||||
org.jetbrains.compose.components:components-resources:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation-layout:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime-saveable:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime:1.8.2
|
||||
org.jetbrains.compose.ui:ui-geometry:1.8.2
|
||||
org.jetbrains.compose.ui:ui-graphics:1.8.2
|
||||
org.jetbrains.compose.ui:ui-text:1.8.2
|
||||
org.jetbrains.compose.ui:ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.ui:ui-unit:1.8.2
|
||||
org.jetbrains.compose.ui:ui-util:1.8.2
|
||||
org.jetbrains.compose.ui:ui:1.8.2
|
||||
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-bom:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0
|
||||
org.jetbrains:annotations:26.0.2
|
||||
org.jsoup:jsoup:1.19.1
|
||||
org.jspecify:jspecify:1.0.0
|
||||
org.minidns:minidns-client:1.1.1
|
||||
org.minidns:minidns-core:1.1.1
|
||||
org.minidns:minidns-dnssec:1.1.1
|
||||
org.minidns:minidns-hla:1.1.1
|
||||
org.minidns:minidns-iterative-resolver:1.1.1
|
||||
org.slf4j:slf4j-api:1.7.36
|
||||
293
app-thunderbird/dependencies/fossDailyRuntimeClasspath.txt
Normal file
|
|
@ -0,0 +1,293 @@
|
|||
androidx.activity:activity-compose:1.10.1
|
||||
androidx.activity:activity-ktx:1.10.1
|
||||
androidx.activity:activity:1.10.1
|
||||
androidx.annotation:annotation-experimental:1.4.1
|
||||
androidx.annotation:annotation-jvm:1.9.1
|
||||
androidx.annotation:annotation:1.9.1
|
||||
androidx.appcompat:appcompat-resources:1.7.1
|
||||
androidx.appcompat:appcompat:1.7.1
|
||||
androidx.arch.core:core-common:2.2.0
|
||||
androidx.arch.core:core-runtime:2.2.0
|
||||
androidx.autofill:autofill:1.3.0
|
||||
androidx.biometric:biometric:1.1.0
|
||||
androidx.browser:browser:1.3.0
|
||||
androidx.camera:camera-camera2:1.4.2
|
||||
androidx.camera:camera-core:1.4.2
|
||||
androidx.camera:camera-lifecycle:1.4.2
|
||||
androidx.camera:camera-video:1.4.2
|
||||
androidx.camera:camera-view:1.4.2
|
||||
androidx.cardview:cardview:1.0.0
|
||||
androidx.collection:collection-jvm:1.5.0
|
||||
androidx.collection:collection-ktx:1.5.0
|
||||
androidx.collection:collection:1.5.0
|
||||
androidx.compose.animation:animation-android:1.8.3
|
||||
androidx.compose.animation:animation-core-android:1.8.3
|
||||
androidx.compose.animation:animation-core:1.8.3
|
||||
androidx.compose.animation:animation:1.8.3
|
||||
androidx.compose.foundation:foundation-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout:1.8.3
|
||||
androidx.compose.foundation:foundation:1.8.3
|
||||
androidx.compose.material3.adaptive:adaptive-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive:1.1.0
|
||||
androidx.compose.material3:material3-android:1.3.2
|
||||
androidx.compose.material3:material3:1.3.2
|
||||
androidx.compose.material:material-icons-core-android:1.7.8
|
||||
androidx.compose.material:material-icons-core:1.7.8
|
||||
androidx.compose.material:material-icons-extended-android:1.7.8
|
||||
androidx.compose.material:material-icons-extended:1.7.8
|
||||
androidx.compose.material:material-ripple-android:1.8.3
|
||||
androidx.compose.material:material-ripple:1.8.3
|
||||
androidx.compose.runtime:runtime-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable:1.8.3
|
||||
androidx.compose.runtime:runtime:1.8.3
|
||||
androidx.compose.ui:ui-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry:1.8.3
|
||||
androidx.compose.ui:ui-graphics-android:1.8.3
|
||||
androidx.compose.ui:ui-graphics:1.8.3
|
||||
androidx.compose.ui:ui-text-android:1.8.3
|
||||
androidx.compose.ui:ui-text:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview-android:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview:1.8.3
|
||||
androidx.compose.ui:ui-unit-android:1.8.3
|
||||
androidx.compose.ui:ui-unit:1.8.3
|
||||
androidx.compose.ui:ui-util-android:1.8.3
|
||||
androidx.compose.ui:ui-util:1.8.3
|
||||
androidx.compose.ui:ui:1.8.3
|
||||
androidx.compose:compose-bom:2025.07.00
|
||||
androidx.concurrent:concurrent-futures-ktx:1.1.0
|
||||
androidx.concurrent:concurrent-futures:1.1.0
|
||||
androidx.constraintlayout:constraintlayout-core:1.1.1
|
||||
androidx.constraintlayout:constraintlayout:2.2.1
|
||||
androidx.coordinatorlayout:coordinatorlayout:1.3.0
|
||||
androidx.core:core-ktx:1.16.0
|
||||
androidx.core:core-remoteviews:1.1.0
|
||||
androidx.core:core-splashscreen:1.0.1
|
||||
androidx.core:core-viewtree:1.0.0
|
||||
androidx.core:core:1.16.0
|
||||
androidx.cursoradapter:cursoradapter:1.0.0
|
||||
androidx.customview:customview-poolingcontainer:1.0.0
|
||||
androidx.customview:customview:1.1.0
|
||||
androidx.datastore:datastore-core:1.0.0
|
||||
androidx.datastore:datastore-preferences-core:1.0.0
|
||||
androidx.datastore:datastore-preferences:1.0.0
|
||||
androidx.datastore:datastore:1.0.0
|
||||
androidx.documentfile:documentfile:1.0.0
|
||||
androidx.drawerlayout:drawerlayout:1.1.1
|
||||
androidx.dynamicanimation:dynamicanimation:1.0.0
|
||||
androidx.emoji2:emoji2-views-helper:1.4.0
|
||||
androidx.emoji2:emoji2:1.4.0
|
||||
androidx.exifinterface:exifinterface:1.4.1
|
||||
androidx.fragment:fragment-compose:1.8.8
|
||||
androidx.fragment:fragment-ktx:1.8.8
|
||||
androidx.fragment:fragment:1.8.8
|
||||
androidx.glance:glance-appwidget-external-protobuf:1.1.1
|
||||
androidx.glance:glance-appwidget-proto:1.1.1
|
||||
androidx.glance:glance-appwidget:1.1.1
|
||||
androidx.glance:glance-material3:1.1.1
|
||||
androidx.glance:glance:1.1.1
|
||||
androidx.graphics:graphics-path:1.0.1
|
||||
androidx.interpolator:interpolator:1.0.0
|
||||
androidx.legacy:legacy-support-core-utils:1.0.0
|
||||
androidx.lifecycle:lifecycle-common-java8:2.9.2
|
||||
androidx.lifecycle:lifecycle-common-jvm:2.9.2
|
||||
androidx.lifecycle:lifecycle-common:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata:2.9.2
|
||||
androidx.lifecycle:lifecycle-process:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime:2.9.2
|
||||
androidx.lifecycle:lifecycle-service:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel:2.9.2
|
||||
androidx.loader:loader:1.0.0
|
||||
androidx.localbroadcastmanager:localbroadcastmanager:1.1.0
|
||||
androidx.navigation:navigation-common-android:2.9.3
|
||||
androidx.navigation:navigation-common:2.9.3
|
||||
androidx.navigation:navigation-compose-android:2.9.3
|
||||
androidx.navigation:navigation-compose:2.9.3
|
||||
androidx.navigation:navigation-fragment:2.9.3
|
||||
androidx.navigation:navigation-runtime-android:2.9.3
|
||||
androidx.navigation:navigation-runtime:2.9.3
|
||||
androidx.navigation:navigation-ui:2.9.3
|
||||
androidx.preference:preference:1.2.1
|
||||
androidx.print:print:1.0.0
|
||||
androidx.profileinstaller:profileinstaller:1.4.1
|
||||
androidx.recyclerview:recyclerview:1.4.0
|
||||
androidx.resourceinspection:resourceinspection-annotation:1.0.1
|
||||
androidx.room:room-common:2.6.1
|
||||
androidx.room:room-ktx:2.6.1
|
||||
androidx.room:room-runtime:2.6.1
|
||||
androidx.savedstate:savedstate-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose:1.3.1
|
||||
androidx.savedstate:savedstate-ktx:1.3.1
|
||||
androidx.savedstate:savedstate:1.3.1
|
||||
androidx.slidingpanelayout:slidingpanelayout:1.2.0
|
||||
androidx.sqlite:sqlite-framework:2.4.0
|
||||
androidx.sqlite:sqlite:2.4.0
|
||||
androidx.startup:startup-runtime:1.1.1
|
||||
androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
|
||||
androidx.tracing:tracing-ktx:1.2.0
|
||||
androidx.tracing:tracing:1.2.0
|
||||
androidx.transition:transition:1.5.0
|
||||
androidx.vectordrawable:vectordrawable-animated:1.2.0
|
||||
androidx.vectordrawable:vectordrawable:1.2.0
|
||||
androidx.versionedparcelable:versionedparcelable:1.1.1
|
||||
androidx.viewpager2:viewpager2:1.1.0-beta02
|
||||
androidx.viewpager:viewpager:1.0.0
|
||||
androidx.webkit:webkit:1.14.0
|
||||
androidx.window.extensions.core:core:1.0.0
|
||||
androidx.window:window-core-android:1.3.0
|
||||
androidx.window:window-core:1.3.0
|
||||
androidx.window:window:1.3.0
|
||||
androidx.work:work-runtime-ktx:2.10.3
|
||||
androidx.work:work-runtime:2.10.3
|
||||
co.touchlab:stately-concurrency-jvm:2.1.0
|
||||
co.touchlab:stately-concurrency:2.1.0
|
||||
co.touchlab:stately-concurrent-collections-jvm:2.1.0
|
||||
co.touchlab:stately-concurrent-collections:2.1.0
|
||||
co.touchlab:stately-strict-jvm:2.1.0
|
||||
co.touchlab:stately-strict:2.1.0
|
||||
com.beetstra.jutf7:jutf7:1.0.0
|
||||
com.github.ByteHamster:SearchPreference:2.7.3
|
||||
com.github.bumptech.glide:annotations:4.16.0
|
||||
com.github.bumptech.glide:disklrucache:4.16.0
|
||||
com.github.bumptech.glide:gifdecoder:4.16.0
|
||||
com.github.bumptech.glide:glide:4.16.0
|
||||
com.github.skydoves:landscapist-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3:2.5.1
|
||||
com.github.skydoves:landscapist:2.5.1
|
||||
com.google.android.flexbox:flexbox:3.0.0
|
||||
com.google.android.material:material:1.12.0
|
||||
com.google.auto.value:auto-value-annotations:1.6.3
|
||||
com.google.errorprone:error_prone_annotations:2.15.0
|
||||
com.google.guava:listenablefuture:1.0
|
||||
com.google.zxing:core:3.5.3
|
||||
com.jakewharton.timber:timber:5.0.1
|
||||
com.jcraft:jzlib:1.0.7
|
||||
com.mikepenz:fastadapter-extensions-drag:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-expandable:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-swipe:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-utils:5.7.0
|
||||
com.mikepenz:fastadapter:5.7.0
|
||||
com.squareup.moshi:moshi:1.15.2
|
||||
com.squareup.okhttp3:okhttp:4.12.0
|
||||
com.squareup.okio:okio-jvm:3.16.0
|
||||
com.squareup.okio:okio:3.16.0
|
||||
com.takisoft.colorpicker:colorpicker:1.0.0
|
||||
com.takisoft.datetimepicker:datetimepicker:1.0.2
|
||||
com.takisoft.preferencex:preferencex-colorpicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex-datetimepicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex:1.1.0
|
||||
commons-io:commons-io:2.20.0
|
||||
de.cketti.library.changelog:ckchangelog-core:2.0.0-beta02
|
||||
de.cketti.safecontentresolver:safe-content-resolver-v21:1.0.0
|
||||
de.hdodenhof:circleimageview:3.1.0
|
||||
io.coil-kt.coil3:coil-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core:3.2.0
|
||||
io.coil-kt.coil3:coil-gif:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp-jvm:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp:3.2.0
|
||||
io.coil-kt.coil3:coil-video:3.2.0
|
||||
io.coil-kt.coil3:coil:3.2.0
|
||||
io.insert-koin:koin-android:4.1.0
|
||||
io.insert-koin:koin-androidx-compose:4.1.0
|
||||
io.insert-koin:koin-bom:4.1.0
|
||||
io.insert-koin:koin-compose-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel:4.1.0
|
||||
io.insert-koin:koin-compose:4.1.0
|
||||
io.insert-koin:koin-core-jvm:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel:4.1.0
|
||||
io.insert-koin:koin-core:4.1.0
|
||||
net.jcip:jcip-annotations:1.0
|
||||
net.openid:appauth:0.11.1
|
||||
org.apache.commons:commons-lang3:3.7
|
||||
org.apache.commons:commons-text:1.3
|
||||
org.apache.httpcomponents.client5:httpclient5:5.5
|
||||
org.apache.httpcomponents.core5:httpcore5-h2:5.3.4
|
||||
org.apache.httpcomponents.core5:httpcore5:5.3.4
|
||||
org.apache.james:apache-mime4j-core:0.8.13
|
||||
org.apache.james:apache-mime4j-dom:0.8.13
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-common:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel:2.9.1
|
||||
org.jetbrains.androidx.savedstate:savedstate:1.3.1
|
||||
org.jetbrains.compose.animation:animation-core:1.8.2
|
||||
org.jetbrains.compose.animation:animation:1.8.2
|
||||
org.jetbrains.compose.annotation-internal:annotation:1.8.2
|
||||
org.jetbrains.compose.collection-internal:collection:1.8.2
|
||||
org.jetbrains.compose.components:components-resources-android:1.8.2
|
||||
org.jetbrains.compose.components:components-resources:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation-layout:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime-saveable:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime:1.8.2
|
||||
org.jetbrains.compose.ui:ui-geometry:1.8.2
|
||||
org.jetbrains.compose.ui:ui-graphics:1.8.2
|
||||
org.jetbrains.compose.ui:ui-text:1.8.2
|
||||
org.jetbrains.compose.ui:ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.ui:ui-unit:1.8.2
|
||||
org.jetbrains.compose.ui:ui-util:1.8.2
|
||||
org.jetbrains.compose.ui:ui:1.8.2
|
||||
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-bom:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0
|
||||
org.jetbrains:annotations:26.0.2
|
||||
org.jsoup:jsoup:1.19.1
|
||||
org.jspecify:jspecify:1.0.0
|
||||
org.minidns:minidns-client:1.1.1
|
||||
org.minidns:minidns-core:1.1.1
|
||||
org.minidns:minidns-dnssec:1.1.1
|
||||
org.minidns:minidns-hla:1.1.1
|
||||
org.minidns:minidns-iterative-resolver:1.1.1
|
||||
org.slf4j:slf4j-api:1.7.36
|
||||
293
app-thunderbird/dependencies/fossReleaseRuntimeClasspath.txt
Normal file
|
|
@ -0,0 +1,293 @@
|
|||
androidx.activity:activity-compose:1.10.1
|
||||
androidx.activity:activity-ktx:1.10.1
|
||||
androidx.activity:activity:1.10.1
|
||||
androidx.annotation:annotation-experimental:1.4.1
|
||||
androidx.annotation:annotation-jvm:1.9.1
|
||||
androidx.annotation:annotation:1.9.1
|
||||
androidx.appcompat:appcompat-resources:1.7.1
|
||||
androidx.appcompat:appcompat:1.7.1
|
||||
androidx.arch.core:core-common:2.2.0
|
||||
androidx.arch.core:core-runtime:2.2.0
|
||||
androidx.autofill:autofill:1.3.0
|
||||
androidx.biometric:biometric:1.1.0
|
||||
androidx.browser:browser:1.3.0
|
||||
androidx.camera:camera-camera2:1.4.2
|
||||
androidx.camera:camera-core:1.4.2
|
||||
androidx.camera:camera-lifecycle:1.4.2
|
||||
androidx.camera:camera-video:1.4.2
|
||||
androidx.camera:camera-view:1.4.2
|
||||
androidx.cardview:cardview:1.0.0
|
||||
androidx.collection:collection-jvm:1.5.0
|
||||
androidx.collection:collection-ktx:1.5.0
|
||||
androidx.collection:collection:1.5.0
|
||||
androidx.compose.animation:animation-android:1.8.3
|
||||
androidx.compose.animation:animation-core-android:1.8.3
|
||||
androidx.compose.animation:animation-core:1.8.3
|
||||
androidx.compose.animation:animation:1.8.3
|
||||
androidx.compose.foundation:foundation-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout:1.8.3
|
||||
androidx.compose.foundation:foundation:1.8.3
|
||||
androidx.compose.material3.adaptive:adaptive-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive:1.1.0
|
||||
androidx.compose.material3:material3-android:1.3.2
|
||||
androidx.compose.material3:material3:1.3.2
|
||||
androidx.compose.material:material-icons-core-android:1.7.8
|
||||
androidx.compose.material:material-icons-core:1.7.8
|
||||
androidx.compose.material:material-icons-extended-android:1.7.8
|
||||
androidx.compose.material:material-icons-extended:1.7.8
|
||||
androidx.compose.material:material-ripple-android:1.8.3
|
||||
androidx.compose.material:material-ripple:1.8.3
|
||||
androidx.compose.runtime:runtime-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable:1.8.3
|
||||
androidx.compose.runtime:runtime:1.8.3
|
||||
androidx.compose.ui:ui-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry:1.8.3
|
||||
androidx.compose.ui:ui-graphics-android:1.8.3
|
||||
androidx.compose.ui:ui-graphics:1.8.3
|
||||
androidx.compose.ui:ui-text-android:1.8.3
|
||||
androidx.compose.ui:ui-text:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview-android:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview:1.8.3
|
||||
androidx.compose.ui:ui-unit-android:1.8.3
|
||||
androidx.compose.ui:ui-unit:1.8.3
|
||||
androidx.compose.ui:ui-util-android:1.8.3
|
||||
androidx.compose.ui:ui-util:1.8.3
|
||||
androidx.compose.ui:ui:1.8.3
|
||||
androidx.compose:compose-bom:2025.07.00
|
||||
androidx.concurrent:concurrent-futures-ktx:1.1.0
|
||||
androidx.concurrent:concurrent-futures:1.1.0
|
||||
androidx.constraintlayout:constraintlayout-core:1.1.1
|
||||
androidx.constraintlayout:constraintlayout:2.2.1
|
||||
androidx.coordinatorlayout:coordinatorlayout:1.3.0
|
||||
androidx.core:core-ktx:1.16.0
|
||||
androidx.core:core-remoteviews:1.1.0
|
||||
androidx.core:core-splashscreen:1.0.1
|
||||
androidx.core:core-viewtree:1.0.0
|
||||
androidx.core:core:1.16.0
|
||||
androidx.cursoradapter:cursoradapter:1.0.0
|
||||
androidx.customview:customview-poolingcontainer:1.0.0
|
||||
androidx.customview:customview:1.1.0
|
||||
androidx.datastore:datastore-core:1.0.0
|
||||
androidx.datastore:datastore-preferences-core:1.0.0
|
||||
androidx.datastore:datastore-preferences:1.0.0
|
||||
androidx.datastore:datastore:1.0.0
|
||||
androidx.documentfile:documentfile:1.0.0
|
||||
androidx.drawerlayout:drawerlayout:1.1.1
|
||||
androidx.dynamicanimation:dynamicanimation:1.0.0
|
||||
androidx.emoji2:emoji2-views-helper:1.4.0
|
||||
androidx.emoji2:emoji2:1.4.0
|
||||
androidx.exifinterface:exifinterface:1.4.1
|
||||
androidx.fragment:fragment-compose:1.8.8
|
||||
androidx.fragment:fragment-ktx:1.8.8
|
||||
androidx.fragment:fragment:1.8.8
|
||||
androidx.glance:glance-appwidget-external-protobuf:1.1.1
|
||||
androidx.glance:glance-appwidget-proto:1.1.1
|
||||
androidx.glance:glance-appwidget:1.1.1
|
||||
androidx.glance:glance-material3:1.1.1
|
||||
androidx.glance:glance:1.1.1
|
||||
androidx.graphics:graphics-path:1.0.1
|
||||
androidx.interpolator:interpolator:1.0.0
|
||||
androidx.legacy:legacy-support-core-utils:1.0.0
|
||||
androidx.lifecycle:lifecycle-common-java8:2.9.2
|
||||
androidx.lifecycle:lifecycle-common-jvm:2.9.2
|
||||
androidx.lifecycle:lifecycle-common:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata:2.9.2
|
||||
androidx.lifecycle:lifecycle-process:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime:2.9.2
|
||||
androidx.lifecycle:lifecycle-service:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel:2.9.2
|
||||
androidx.loader:loader:1.0.0
|
||||
androidx.localbroadcastmanager:localbroadcastmanager:1.1.0
|
||||
androidx.navigation:navigation-common-android:2.9.3
|
||||
androidx.navigation:navigation-common:2.9.3
|
||||
androidx.navigation:navigation-compose-android:2.9.3
|
||||
androidx.navigation:navigation-compose:2.9.3
|
||||
androidx.navigation:navigation-fragment:2.9.3
|
||||
androidx.navigation:navigation-runtime-android:2.9.3
|
||||
androidx.navigation:navigation-runtime:2.9.3
|
||||
androidx.navigation:navigation-ui:2.9.3
|
||||
androidx.preference:preference:1.2.1
|
||||
androidx.print:print:1.0.0
|
||||
androidx.profileinstaller:profileinstaller:1.4.1
|
||||
androidx.recyclerview:recyclerview:1.4.0
|
||||
androidx.resourceinspection:resourceinspection-annotation:1.0.1
|
||||
androidx.room:room-common:2.6.1
|
||||
androidx.room:room-ktx:2.6.1
|
||||
androidx.room:room-runtime:2.6.1
|
||||
androidx.savedstate:savedstate-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose:1.3.1
|
||||
androidx.savedstate:savedstate-ktx:1.3.1
|
||||
androidx.savedstate:savedstate:1.3.1
|
||||
androidx.slidingpanelayout:slidingpanelayout:1.2.0
|
||||
androidx.sqlite:sqlite-framework:2.4.0
|
||||
androidx.sqlite:sqlite:2.4.0
|
||||
androidx.startup:startup-runtime:1.1.1
|
||||
androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
|
||||
androidx.tracing:tracing-ktx:1.2.0
|
||||
androidx.tracing:tracing:1.2.0
|
||||
androidx.transition:transition:1.5.0
|
||||
androidx.vectordrawable:vectordrawable-animated:1.2.0
|
||||
androidx.vectordrawable:vectordrawable:1.2.0
|
||||
androidx.versionedparcelable:versionedparcelable:1.1.1
|
||||
androidx.viewpager2:viewpager2:1.1.0-beta02
|
||||
androidx.viewpager:viewpager:1.0.0
|
||||
androidx.webkit:webkit:1.14.0
|
||||
androidx.window.extensions.core:core:1.0.0
|
||||
androidx.window:window-core-android:1.3.0
|
||||
androidx.window:window-core:1.3.0
|
||||
androidx.window:window:1.3.0
|
||||
androidx.work:work-runtime-ktx:2.10.3
|
||||
androidx.work:work-runtime:2.10.3
|
||||
co.touchlab:stately-concurrency-jvm:2.1.0
|
||||
co.touchlab:stately-concurrency:2.1.0
|
||||
co.touchlab:stately-concurrent-collections-jvm:2.1.0
|
||||
co.touchlab:stately-concurrent-collections:2.1.0
|
||||
co.touchlab:stately-strict-jvm:2.1.0
|
||||
co.touchlab:stately-strict:2.1.0
|
||||
com.beetstra.jutf7:jutf7:1.0.0
|
||||
com.github.ByteHamster:SearchPreference:2.7.3
|
||||
com.github.bumptech.glide:annotations:4.16.0
|
||||
com.github.bumptech.glide:disklrucache:4.16.0
|
||||
com.github.bumptech.glide:gifdecoder:4.16.0
|
||||
com.github.bumptech.glide:glide:4.16.0
|
||||
com.github.skydoves:landscapist-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3:2.5.1
|
||||
com.github.skydoves:landscapist:2.5.1
|
||||
com.google.android.flexbox:flexbox:3.0.0
|
||||
com.google.android.material:material:1.12.0
|
||||
com.google.auto.value:auto-value-annotations:1.6.3
|
||||
com.google.errorprone:error_prone_annotations:2.15.0
|
||||
com.google.guava:listenablefuture:1.0
|
||||
com.google.zxing:core:3.5.3
|
||||
com.jakewharton.timber:timber:5.0.1
|
||||
com.jcraft:jzlib:1.0.7
|
||||
com.mikepenz:fastadapter-extensions-drag:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-expandable:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-swipe:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-utils:5.7.0
|
||||
com.mikepenz:fastadapter:5.7.0
|
||||
com.squareup.moshi:moshi:1.15.2
|
||||
com.squareup.okhttp3:okhttp:4.12.0
|
||||
com.squareup.okio:okio-jvm:3.16.0
|
||||
com.squareup.okio:okio:3.16.0
|
||||
com.takisoft.colorpicker:colorpicker:1.0.0
|
||||
com.takisoft.datetimepicker:datetimepicker:1.0.2
|
||||
com.takisoft.preferencex:preferencex-colorpicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex-datetimepicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex:1.1.0
|
||||
commons-io:commons-io:2.20.0
|
||||
de.cketti.library.changelog:ckchangelog-core:2.0.0-beta02
|
||||
de.cketti.safecontentresolver:safe-content-resolver-v21:1.0.0
|
||||
de.hdodenhof:circleimageview:3.1.0
|
||||
io.coil-kt.coil3:coil-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core:3.2.0
|
||||
io.coil-kt.coil3:coil-gif:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp-jvm:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp:3.2.0
|
||||
io.coil-kt.coil3:coil-video:3.2.0
|
||||
io.coil-kt.coil3:coil:3.2.0
|
||||
io.insert-koin:koin-android:4.1.0
|
||||
io.insert-koin:koin-androidx-compose:4.1.0
|
||||
io.insert-koin:koin-bom:4.1.0
|
||||
io.insert-koin:koin-compose-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel:4.1.0
|
||||
io.insert-koin:koin-compose:4.1.0
|
||||
io.insert-koin:koin-core-jvm:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel:4.1.0
|
||||
io.insert-koin:koin-core:4.1.0
|
||||
net.jcip:jcip-annotations:1.0
|
||||
net.openid:appauth:0.11.1
|
||||
org.apache.commons:commons-lang3:3.7
|
||||
org.apache.commons:commons-text:1.3
|
||||
org.apache.httpcomponents.client5:httpclient5:5.5
|
||||
org.apache.httpcomponents.core5:httpcore5-h2:5.3.4
|
||||
org.apache.httpcomponents.core5:httpcore5:5.3.4
|
||||
org.apache.james:apache-mime4j-core:0.8.13
|
||||
org.apache.james:apache-mime4j-dom:0.8.13
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-common:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel:2.9.1
|
||||
org.jetbrains.androidx.savedstate:savedstate:1.3.1
|
||||
org.jetbrains.compose.animation:animation-core:1.8.2
|
||||
org.jetbrains.compose.animation:animation:1.8.2
|
||||
org.jetbrains.compose.annotation-internal:annotation:1.8.2
|
||||
org.jetbrains.compose.collection-internal:collection:1.8.2
|
||||
org.jetbrains.compose.components:components-resources-android:1.8.2
|
||||
org.jetbrains.compose.components:components-resources:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation-layout:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime-saveable:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime:1.8.2
|
||||
org.jetbrains.compose.ui:ui-geometry:1.8.2
|
||||
org.jetbrains.compose.ui:ui-graphics:1.8.2
|
||||
org.jetbrains.compose.ui:ui-text:1.8.2
|
||||
org.jetbrains.compose.ui:ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.ui:ui-unit:1.8.2
|
||||
org.jetbrains.compose.ui:ui-util:1.8.2
|
||||
org.jetbrains.compose.ui:ui:1.8.2
|
||||
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-bom:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0
|
||||
org.jetbrains:annotations:26.0.2
|
||||
org.jsoup:jsoup:1.19.1
|
||||
org.jspecify:jspecify:1.0.0
|
||||
org.minidns:minidns-client:1.1.1
|
||||
org.minidns:minidns-core:1.1.1
|
||||
org.minidns:minidns-dnssec:1.1.1
|
||||
org.minidns:minidns-hla:1.1.1
|
||||
org.minidns:minidns-iterative-resolver:1.1.1
|
||||
org.slf4j:slf4j-api:1.7.36
|
||||
307
app-thunderbird/dependencies/fullBetaRuntimeClasspath.txt
Normal file
|
|
@ -0,0 +1,307 @@
|
|||
androidx.activity:activity-compose:1.10.1
|
||||
androidx.activity:activity-ktx:1.10.1
|
||||
androidx.activity:activity:1.10.1
|
||||
androidx.annotation:annotation-experimental:1.4.1
|
||||
androidx.annotation:annotation-jvm:1.9.1
|
||||
androidx.annotation:annotation:1.9.1
|
||||
androidx.appcompat:appcompat-resources:1.7.1
|
||||
androidx.appcompat:appcompat:1.7.1
|
||||
androidx.arch.core:core-common:2.2.0
|
||||
androidx.arch.core:core-runtime:2.2.0
|
||||
androidx.autofill:autofill:1.3.0
|
||||
androidx.biometric:biometric:1.1.0
|
||||
androidx.browser:browser:1.3.0
|
||||
androidx.camera:camera-camera2:1.4.2
|
||||
androidx.camera:camera-core:1.4.2
|
||||
androidx.camera:camera-lifecycle:1.4.2
|
||||
androidx.camera:camera-video:1.4.2
|
||||
androidx.camera:camera-view:1.4.2
|
||||
androidx.cardview:cardview:1.0.0
|
||||
androidx.collection:collection-jvm:1.5.0
|
||||
androidx.collection:collection-ktx:1.5.0
|
||||
androidx.collection:collection:1.5.0
|
||||
androidx.compose.animation:animation-android:1.8.3
|
||||
androidx.compose.animation:animation-core-android:1.8.3
|
||||
androidx.compose.animation:animation-core:1.8.3
|
||||
androidx.compose.animation:animation:1.8.3
|
||||
androidx.compose.foundation:foundation-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout:1.8.3
|
||||
androidx.compose.foundation:foundation:1.8.3
|
||||
androidx.compose.material3.adaptive:adaptive-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive:1.1.0
|
||||
androidx.compose.material3:material3-android:1.3.2
|
||||
androidx.compose.material3:material3:1.3.2
|
||||
androidx.compose.material:material-icons-core-android:1.7.8
|
||||
androidx.compose.material:material-icons-core:1.7.8
|
||||
androidx.compose.material:material-icons-extended-android:1.7.8
|
||||
androidx.compose.material:material-icons-extended:1.7.8
|
||||
androidx.compose.material:material-ripple-android:1.8.3
|
||||
androidx.compose.material:material-ripple:1.8.3
|
||||
androidx.compose.runtime:runtime-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable:1.8.3
|
||||
androidx.compose.runtime:runtime:1.8.3
|
||||
androidx.compose.ui:ui-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry:1.8.3
|
||||
androidx.compose.ui:ui-graphics-android:1.8.3
|
||||
androidx.compose.ui:ui-graphics:1.8.3
|
||||
androidx.compose.ui:ui-text-android:1.8.3
|
||||
androidx.compose.ui:ui-text:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview-android:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview:1.8.3
|
||||
androidx.compose.ui:ui-unit-android:1.8.3
|
||||
androidx.compose.ui:ui-unit:1.8.3
|
||||
androidx.compose.ui:ui-util-android:1.8.3
|
||||
androidx.compose.ui:ui-util:1.8.3
|
||||
androidx.compose.ui:ui:1.8.3
|
||||
androidx.compose:compose-bom:2025.07.00
|
||||
androidx.concurrent:concurrent-futures-ktx:1.1.0
|
||||
androidx.concurrent:concurrent-futures:1.1.0
|
||||
androidx.constraintlayout:constraintlayout-core:1.1.1
|
||||
androidx.constraintlayout:constraintlayout:2.2.1
|
||||
androidx.coordinatorlayout:coordinatorlayout:1.3.0
|
||||
androidx.core:core-ktx:1.16.0
|
||||
androidx.core:core-remoteviews:1.1.0
|
||||
androidx.core:core-splashscreen:1.0.1
|
||||
androidx.core:core-viewtree:1.0.0
|
||||
androidx.core:core:1.16.0
|
||||
androidx.cursoradapter:cursoradapter:1.0.0
|
||||
androidx.customview:customview-poolingcontainer:1.0.0
|
||||
androidx.customview:customview:1.1.0
|
||||
androidx.datastore:datastore-core:1.0.0
|
||||
androidx.datastore:datastore-preferences-core:1.0.0
|
||||
androidx.datastore:datastore-preferences:1.0.0
|
||||
androidx.datastore:datastore:1.0.0
|
||||
androidx.documentfile:documentfile:1.0.0
|
||||
androidx.drawerlayout:drawerlayout:1.1.1
|
||||
androidx.dynamicanimation:dynamicanimation:1.0.0
|
||||
androidx.emoji2:emoji2-views-helper:1.4.0
|
||||
androidx.emoji2:emoji2:1.4.0
|
||||
androidx.exifinterface:exifinterface:1.4.1
|
||||
androidx.fragment:fragment-compose:1.8.8
|
||||
androidx.fragment:fragment-ktx:1.8.8
|
||||
androidx.fragment:fragment:1.8.8
|
||||
androidx.glance:glance-appwidget-external-protobuf:1.1.1
|
||||
androidx.glance:glance-appwidget-proto:1.1.1
|
||||
androidx.glance:glance-appwidget:1.1.1
|
||||
androidx.glance:glance-material3:1.1.1
|
||||
androidx.glance:glance:1.1.1
|
||||
androidx.graphics:graphics-path:1.0.1
|
||||
androidx.interpolator:interpolator:1.0.0
|
||||
androidx.legacy:legacy-support-core-utils:1.0.0
|
||||
androidx.lifecycle:lifecycle-common-java8:2.9.2
|
||||
androidx.lifecycle:lifecycle-common-jvm:2.9.2
|
||||
androidx.lifecycle:lifecycle-common:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata:2.9.2
|
||||
androidx.lifecycle:lifecycle-process:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime:2.9.2
|
||||
androidx.lifecycle:lifecycle-service:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel:2.9.2
|
||||
androidx.loader:loader:1.0.0
|
||||
androidx.localbroadcastmanager:localbroadcastmanager:1.1.0
|
||||
androidx.navigation:navigation-common-android:2.9.3
|
||||
androidx.navigation:navigation-common:2.9.3
|
||||
androidx.navigation:navigation-compose-android:2.9.3
|
||||
androidx.navigation:navigation-compose:2.9.3
|
||||
androidx.navigation:navigation-fragment:2.9.3
|
||||
androidx.navigation:navigation-runtime-android:2.9.3
|
||||
androidx.navigation:navigation-runtime:2.9.3
|
||||
androidx.navigation:navigation-ui:2.9.3
|
||||
androidx.preference:preference:1.2.1
|
||||
androidx.print:print:1.0.0
|
||||
androidx.profileinstaller:profileinstaller:1.4.1
|
||||
androidx.recyclerview:recyclerview:1.4.0
|
||||
androidx.resourceinspection:resourceinspection-annotation:1.0.1
|
||||
androidx.room:room-common:2.6.1
|
||||
androidx.room:room-ktx:2.6.1
|
||||
androidx.room:room-runtime:2.6.1
|
||||
androidx.savedstate:savedstate-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose:1.3.1
|
||||
androidx.savedstate:savedstate-ktx:1.3.1
|
||||
androidx.savedstate:savedstate:1.3.1
|
||||
androidx.slidingpanelayout:slidingpanelayout:1.2.0
|
||||
androidx.sqlite:sqlite-framework:2.4.0
|
||||
androidx.sqlite:sqlite:2.4.0
|
||||
androidx.startup:startup-runtime:1.1.1
|
||||
androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
|
||||
androidx.tracing:tracing-ktx:1.2.0
|
||||
androidx.tracing:tracing:1.2.0
|
||||
androidx.transition:transition:1.5.0
|
||||
androidx.vectordrawable:vectordrawable-animated:1.2.0
|
||||
androidx.vectordrawable:vectordrawable:1.2.0
|
||||
androidx.versionedparcelable:versionedparcelable:1.1.1
|
||||
androidx.viewpager2:viewpager2:1.1.0-beta02
|
||||
androidx.viewpager:viewpager:1.0.0
|
||||
androidx.webkit:webkit:1.14.0
|
||||
androidx.window.extensions.core:core:1.0.0
|
||||
androidx.window:window-core-android:1.3.0
|
||||
androidx.window:window-core:1.3.0
|
||||
androidx.window:window:1.3.0
|
||||
androidx.work:work-runtime-ktx:2.10.3
|
||||
androidx.work:work-runtime:2.10.3
|
||||
co.touchlab:stately-concurrency-jvm:2.1.0
|
||||
co.touchlab:stately-concurrency:2.1.0
|
||||
co.touchlab:stately-concurrent-collections-jvm:2.1.0
|
||||
co.touchlab:stately-concurrent-collections:2.1.0
|
||||
co.touchlab:stately-strict-jvm:2.1.0
|
||||
co.touchlab:stately-strict:2.1.0
|
||||
com.android.billingclient:billing-ktx:7.1.1
|
||||
com.android.billingclient:billing:7.1.1
|
||||
com.beetstra.jutf7:jutf7:1.0.0
|
||||
com.github.ByteHamster:SearchPreference:2.7.3
|
||||
com.github.bumptech.glide:annotations:4.16.0
|
||||
com.github.bumptech.glide:disklrucache:4.16.0
|
||||
com.github.bumptech.glide:gifdecoder:4.16.0
|
||||
com.github.bumptech.glide:glide:4.16.0
|
||||
com.github.skydoves:landscapist-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3:2.5.1
|
||||
com.github.skydoves:landscapist:2.5.1
|
||||
com.google.android.datatransport:transport-api:3.0.0
|
||||
com.google.android.datatransport:transport-backend-cct:3.1.8
|
||||
com.google.android.datatransport:transport-runtime:3.1.8
|
||||
com.google.android.flexbox:flexbox:3.0.0
|
||||
com.google.android.gms:play-services-base:18.5.0
|
||||
com.google.android.gms:play-services-basement:18.4.0
|
||||
com.google.android.gms:play-services-location:19.0.0
|
||||
com.google.android.gms:play-services-places-placereport:17.0.0
|
||||
com.google.android.gms:play-services-tasks:18.2.0
|
||||
com.google.android.material:material:1.12.0
|
||||
com.google.auto.value:auto-value-annotations:1.6.3
|
||||
com.google.errorprone:error_prone_annotations:2.15.0
|
||||
com.google.firebase:firebase-encoders-json:18.0.0
|
||||
com.google.firebase:firebase-encoders-proto:16.0.0
|
||||
com.google.firebase:firebase-encoders:17.0.0
|
||||
com.google.guava:listenablefuture:1.0
|
||||
com.google.zxing:core:3.5.3
|
||||
com.jakewharton.timber:timber:5.0.1
|
||||
com.jcraft:jzlib:1.0.7
|
||||
com.mikepenz:fastadapter-extensions-drag:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-expandable:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-swipe:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-utils:5.7.0
|
||||
com.mikepenz:fastadapter:5.7.0
|
||||
com.squareup.moshi:moshi:1.15.2
|
||||
com.squareup.okhttp3:okhttp:4.12.0
|
||||
com.squareup.okio:okio-jvm:3.16.0
|
||||
com.squareup.okio:okio:3.16.0
|
||||
com.takisoft.colorpicker:colorpicker:1.0.0
|
||||
com.takisoft.datetimepicker:datetimepicker:1.0.2
|
||||
com.takisoft.preferencex:preferencex-colorpicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex-datetimepicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex:1.1.0
|
||||
commons-io:commons-io:2.20.0
|
||||
de.cketti.library.changelog:ckchangelog-core:2.0.0-beta02
|
||||
de.cketti.safecontentresolver:safe-content-resolver-v21:1.0.0
|
||||
de.hdodenhof:circleimageview:3.1.0
|
||||
io.coil-kt.coil3:coil-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core:3.2.0
|
||||
io.coil-kt.coil3:coil-gif:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp-jvm:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp:3.2.0
|
||||
io.coil-kt.coil3:coil-video:3.2.0
|
||||
io.coil-kt.coil3:coil:3.2.0
|
||||
io.insert-koin:koin-android:4.1.0
|
||||
io.insert-koin:koin-androidx-compose:4.1.0
|
||||
io.insert-koin:koin-bom:4.1.0
|
||||
io.insert-koin:koin-compose-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel:4.1.0
|
||||
io.insert-koin:koin-compose:4.1.0
|
||||
io.insert-koin:koin-core-jvm:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel:4.1.0
|
||||
io.insert-koin:koin-core:4.1.0
|
||||
javax.inject:javax.inject:1
|
||||
net.jcip:jcip-annotations:1.0
|
||||
net.openid:appauth:0.11.1
|
||||
org.apache.commons:commons-lang3:3.7
|
||||
org.apache.commons:commons-text:1.3
|
||||
org.apache.httpcomponents.client5:httpclient5:5.5
|
||||
org.apache.httpcomponents.core5:httpcore5-h2:5.3.4
|
||||
org.apache.httpcomponents.core5:httpcore5:5.3.4
|
||||
org.apache.james:apache-mime4j-core:0.8.13
|
||||
org.apache.james:apache-mime4j-dom:0.8.13
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-common:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel:2.9.1
|
||||
org.jetbrains.androidx.savedstate:savedstate:1.3.1
|
||||
org.jetbrains.compose.animation:animation-core:1.8.2
|
||||
org.jetbrains.compose.animation:animation:1.8.2
|
||||
org.jetbrains.compose.annotation-internal:annotation:1.8.2
|
||||
org.jetbrains.compose.collection-internal:collection:1.8.2
|
||||
org.jetbrains.compose.components:components-resources-android:1.8.2
|
||||
org.jetbrains.compose.components:components-resources:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation-layout:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime-saveable:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime:1.8.2
|
||||
org.jetbrains.compose.ui:ui-geometry:1.8.2
|
||||
org.jetbrains.compose.ui:ui-graphics:1.8.2
|
||||
org.jetbrains.compose.ui:ui-text:1.8.2
|
||||
org.jetbrains.compose.ui:ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.ui:ui-unit:1.8.2
|
||||
org.jetbrains.compose.ui:ui-util:1.8.2
|
||||
org.jetbrains.compose.ui:ui:1.8.2
|
||||
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-bom:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0
|
||||
org.jetbrains:annotations:26.0.2
|
||||
org.jsoup:jsoup:1.19.1
|
||||
org.jspecify:jspecify:1.0.0
|
||||
org.minidns:minidns-client:1.1.1
|
||||
org.minidns:minidns-core:1.1.1
|
||||
org.minidns:minidns-dnssec:1.1.1
|
||||
org.minidns:minidns-hla:1.1.1
|
||||
org.minidns:minidns-iterative-resolver:1.1.1
|
||||
org.slf4j:slf4j-api:1.7.36
|
||||
307
app-thunderbird/dependencies/fullDailyRuntimeClasspath.txt
Normal file
|
|
@ -0,0 +1,307 @@
|
|||
androidx.activity:activity-compose:1.10.1
|
||||
androidx.activity:activity-ktx:1.10.1
|
||||
androidx.activity:activity:1.10.1
|
||||
androidx.annotation:annotation-experimental:1.4.1
|
||||
androidx.annotation:annotation-jvm:1.9.1
|
||||
androidx.annotation:annotation:1.9.1
|
||||
androidx.appcompat:appcompat-resources:1.7.1
|
||||
androidx.appcompat:appcompat:1.7.1
|
||||
androidx.arch.core:core-common:2.2.0
|
||||
androidx.arch.core:core-runtime:2.2.0
|
||||
androidx.autofill:autofill:1.3.0
|
||||
androidx.biometric:biometric:1.1.0
|
||||
androidx.browser:browser:1.3.0
|
||||
androidx.camera:camera-camera2:1.4.2
|
||||
androidx.camera:camera-core:1.4.2
|
||||
androidx.camera:camera-lifecycle:1.4.2
|
||||
androidx.camera:camera-video:1.4.2
|
||||
androidx.camera:camera-view:1.4.2
|
||||
androidx.cardview:cardview:1.0.0
|
||||
androidx.collection:collection-jvm:1.5.0
|
||||
androidx.collection:collection-ktx:1.5.0
|
||||
androidx.collection:collection:1.5.0
|
||||
androidx.compose.animation:animation-android:1.8.3
|
||||
androidx.compose.animation:animation-core-android:1.8.3
|
||||
androidx.compose.animation:animation-core:1.8.3
|
||||
androidx.compose.animation:animation:1.8.3
|
||||
androidx.compose.foundation:foundation-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout:1.8.3
|
||||
androidx.compose.foundation:foundation:1.8.3
|
||||
androidx.compose.material3.adaptive:adaptive-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive:1.1.0
|
||||
androidx.compose.material3:material3-android:1.3.2
|
||||
androidx.compose.material3:material3:1.3.2
|
||||
androidx.compose.material:material-icons-core-android:1.7.8
|
||||
androidx.compose.material:material-icons-core:1.7.8
|
||||
androidx.compose.material:material-icons-extended-android:1.7.8
|
||||
androidx.compose.material:material-icons-extended:1.7.8
|
||||
androidx.compose.material:material-ripple-android:1.8.3
|
||||
androidx.compose.material:material-ripple:1.8.3
|
||||
androidx.compose.runtime:runtime-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable:1.8.3
|
||||
androidx.compose.runtime:runtime:1.8.3
|
||||
androidx.compose.ui:ui-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry:1.8.3
|
||||
androidx.compose.ui:ui-graphics-android:1.8.3
|
||||
androidx.compose.ui:ui-graphics:1.8.3
|
||||
androidx.compose.ui:ui-text-android:1.8.3
|
||||
androidx.compose.ui:ui-text:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview-android:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview:1.8.3
|
||||
androidx.compose.ui:ui-unit-android:1.8.3
|
||||
androidx.compose.ui:ui-unit:1.8.3
|
||||
androidx.compose.ui:ui-util-android:1.8.3
|
||||
androidx.compose.ui:ui-util:1.8.3
|
||||
androidx.compose.ui:ui:1.8.3
|
||||
androidx.compose:compose-bom:2025.07.00
|
||||
androidx.concurrent:concurrent-futures-ktx:1.1.0
|
||||
androidx.concurrent:concurrent-futures:1.1.0
|
||||
androidx.constraintlayout:constraintlayout-core:1.1.1
|
||||
androidx.constraintlayout:constraintlayout:2.2.1
|
||||
androidx.coordinatorlayout:coordinatorlayout:1.3.0
|
||||
androidx.core:core-ktx:1.16.0
|
||||
androidx.core:core-remoteviews:1.1.0
|
||||
androidx.core:core-splashscreen:1.0.1
|
||||
androidx.core:core-viewtree:1.0.0
|
||||
androidx.core:core:1.16.0
|
||||
androidx.cursoradapter:cursoradapter:1.0.0
|
||||
androidx.customview:customview-poolingcontainer:1.0.0
|
||||
androidx.customview:customview:1.1.0
|
||||
androidx.datastore:datastore-core:1.0.0
|
||||
androidx.datastore:datastore-preferences-core:1.0.0
|
||||
androidx.datastore:datastore-preferences:1.0.0
|
||||
androidx.datastore:datastore:1.0.0
|
||||
androidx.documentfile:documentfile:1.0.0
|
||||
androidx.drawerlayout:drawerlayout:1.1.1
|
||||
androidx.dynamicanimation:dynamicanimation:1.0.0
|
||||
androidx.emoji2:emoji2-views-helper:1.4.0
|
||||
androidx.emoji2:emoji2:1.4.0
|
||||
androidx.exifinterface:exifinterface:1.4.1
|
||||
androidx.fragment:fragment-compose:1.8.8
|
||||
androidx.fragment:fragment-ktx:1.8.8
|
||||
androidx.fragment:fragment:1.8.8
|
||||
androidx.glance:glance-appwidget-external-protobuf:1.1.1
|
||||
androidx.glance:glance-appwidget-proto:1.1.1
|
||||
androidx.glance:glance-appwidget:1.1.1
|
||||
androidx.glance:glance-material3:1.1.1
|
||||
androidx.glance:glance:1.1.1
|
||||
androidx.graphics:graphics-path:1.0.1
|
||||
androidx.interpolator:interpolator:1.0.0
|
||||
androidx.legacy:legacy-support-core-utils:1.0.0
|
||||
androidx.lifecycle:lifecycle-common-java8:2.9.2
|
||||
androidx.lifecycle:lifecycle-common-jvm:2.9.2
|
||||
androidx.lifecycle:lifecycle-common:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata:2.9.2
|
||||
androidx.lifecycle:lifecycle-process:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime:2.9.2
|
||||
androidx.lifecycle:lifecycle-service:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel:2.9.2
|
||||
androidx.loader:loader:1.0.0
|
||||
androidx.localbroadcastmanager:localbroadcastmanager:1.1.0
|
||||
androidx.navigation:navigation-common-android:2.9.3
|
||||
androidx.navigation:navigation-common:2.9.3
|
||||
androidx.navigation:navigation-compose-android:2.9.3
|
||||
androidx.navigation:navigation-compose:2.9.3
|
||||
androidx.navigation:navigation-fragment:2.9.3
|
||||
androidx.navigation:navigation-runtime-android:2.9.3
|
||||
androidx.navigation:navigation-runtime:2.9.3
|
||||
androidx.navigation:navigation-ui:2.9.3
|
||||
androidx.preference:preference:1.2.1
|
||||
androidx.print:print:1.0.0
|
||||
androidx.profileinstaller:profileinstaller:1.4.1
|
||||
androidx.recyclerview:recyclerview:1.4.0
|
||||
androidx.resourceinspection:resourceinspection-annotation:1.0.1
|
||||
androidx.room:room-common:2.6.1
|
||||
androidx.room:room-ktx:2.6.1
|
||||
androidx.room:room-runtime:2.6.1
|
||||
androidx.savedstate:savedstate-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose:1.3.1
|
||||
androidx.savedstate:savedstate-ktx:1.3.1
|
||||
androidx.savedstate:savedstate:1.3.1
|
||||
androidx.slidingpanelayout:slidingpanelayout:1.2.0
|
||||
androidx.sqlite:sqlite-framework:2.4.0
|
||||
androidx.sqlite:sqlite:2.4.0
|
||||
androidx.startup:startup-runtime:1.1.1
|
||||
androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
|
||||
androidx.tracing:tracing-ktx:1.2.0
|
||||
androidx.tracing:tracing:1.2.0
|
||||
androidx.transition:transition:1.5.0
|
||||
androidx.vectordrawable:vectordrawable-animated:1.2.0
|
||||
androidx.vectordrawable:vectordrawable:1.2.0
|
||||
androidx.versionedparcelable:versionedparcelable:1.1.1
|
||||
androidx.viewpager2:viewpager2:1.1.0-beta02
|
||||
androidx.viewpager:viewpager:1.0.0
|
||||
androidx.webkit:webkit:1.14.0
|
||||
androidx.window.extensions.core:core:1.0.0
|
||||
androidx.window:window-core-android:1.3.0
|
||||
androidx.window:window-core:1.3.0
|
||||
androidx.window:window:1.3.0
|
||||
androidx.work:work-runtime-ktx:2.10.3
|
||||
androidx.work:work-runtime:2.10.3
|
||||
co.touchlab:stately-concurrency-jvm:2.1.0
|
||||
co.touchlab:stately-concurrency:2.1.0
|
||||
co.touchlab:stately-concurrent-collections-jvm:2.1.0
|
||||
co.touchlab:stately-concurrent-collections:2.1.0
|
||||
co.touchlab:stately-strict-jvm:2.1.0
|
||||
co.touchlab:stately-strict:2.1.0
|
||||
com.android.billingclient:billing-ktx:7.1.1
|
||||
com.android.billingclient:billing:7.1.1
|
||||
com.beetstra.jutf7:jutf7:1.0.0
|
||||
com.github.ByteHamster:SearchPreference:2.7.3
|
||||
com.github.bumptech.glide:annotations:4.16.0
|
||||
com.github.bumptech.glide:disklrucache:4.16.0
|
||||
com.github.bumptech.glide:gifdecoder:4.16.0
|
||||
com.github.bumptech.glide:glide:4.16.0
|
||||
com.github.skydoves:landscapist-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3:2.5.1
|
||||
com.github.skydoves:landscapist:2.5.1
|
||||
com.google.android.datatransport:transport-api:3.0.0
|
||||
com.google.android.datatransport:transport-backend-cct:3.1.8
|
||||
com.google.android.datatransport:transport-runtime:3.1.8
|
||||
com.google.android.flexbox:flexbox:3.0.0
|
||||
com.google.android.gms:play-services-base:18.5.0
|
||||
com.google.android.gms:play-services-basement:18.4.0
|
||||
com.google.android.gms:play-services-location:19.0.0
|
||||
com.google.android.gms:play-services-places-placereport:17.0.0
|
||||
com.google.android.gms:play-services-tasks:18.2.0
|
||||
com.google.android.material:material:1.12.0
|
||||
com.google.auto.value:auto-value-annotations:1.6.3
|
||||
com.google.errorprone:error_prone_annotations:2.15.0
|
||||
com.google.firebase:firebase-encoders-json:18.0.0
|
||||
com.google.firebase:firebase-encoders-proto:16.0.0
|
||||
com.google.firebase:firebase-encoders:17.0.0
|
||||
com.google.guava:listenablefuture:1.0
|
||||
com.google.zxing:core:3.5.3
|
||||
com.jakewharton.timber:timber:5.0.1
|
||||
com.jcraft:jzlib:1.0.7
|
||||
com.mikepenz:fastadapter-extensions-drag:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-expandable:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-swipe:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-utils:5.7.0
|
||||
com.mikepenz:fastadapter:5.7.0
|
||||
com.squareup.moshi:moshi:1.15.2
|
||||
com.squareup.okhttp3:okhttp:4.12.0
|
||||
com.squareup.okio:okio-jvm:3.16.0
|
||||
com.squareup.okio:okio:3.16.0
|
||||
com.takisoft.colorpicker:colorpicker:1.0.0
|
||||
com.takisoft.datetimepicker:datetimepicker:1.0.2
|
||||
com.takisoft.preferencex:preferencex-colorpicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex-datetimepicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex:1.1.0
|
||||
commons-io:commons-io:2.20.0
|
||||
de.cketti.library.changelog:ckchangelog-core:2.0.0-beta02
|
||||
de.cketti.safecontentresolver:safe-content-resolver-v21:1.0.0
|
||||
de.hdodenhof:circleimageview:3.1.0
|
||||
io.coil-kt.coil3:coil-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core:3.2.0
|
||||
io.coil-kt.coil3:coil-gif:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp-jvm:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp:3.2.0
|
||||
io.coil-kt.coil3:coil-video:3.2.0
|
||||
io.coil-kt.coil3:coil:3.2.0
|
||||
io.insert-koin:koin-android:4.1.0
|
||||
io.insert-koin:koin-androidx-compose:4.1.0
|
||||
io.insert-koin:koin-bom:4.1.0
|
||||
io.insert-koin:koin-compose-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel:4.1.0
|
||||
io.insert-koin:koin-compose:4.1.0
|
||||
io.insert-koin:koin-core-jvm:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel:4.1.0
|
||||
io.insert-koin:koin-core:4.1.0
|
||||
javax.inject:javax.inject:1
|
||||
net.jcip:jcip-annotations:1.0
|
||||
net.openid:appauth:0.11.1
|
||||
org.apache.commons:commons-lang3:3.7
|
||||
org.apache.commons:commons-text:1.3
|
||||
org.apache.httpcomponents.client5:httpclient5:5.5
|
||||
org.apache.httpcomponents.core5:httpcore5-h2:5.3.4
|
||||
org.apache.httpcomponents.core5:httpcore5:5.3.4
|
||||
org.apache.james:apache-mime4j-core:0.8.13
|
||||
org.apache.james:apache-mime4j-dom:0.8.13
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-common:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel:2.9.1
|
||||
org.jetbrains.androidx.savedstate:savedstate:1.3.1
|
||||
org.jetbrains.compose.animation:animation-core:1.8.2
|
||||
org.jetbrains.compose.animation:animation:1.8.2
|
||||
org.jetbrains.compose.annotation-internal:annotation:1.8.2
|
||||
org.jetbrains.compose.collection-internal:collection:1.8.2
|
||||
org.jetbrains.compose.components:components-resources-android:1.8.2
|
||||
org.jetbrains.compose.components:components-resources:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation-layout:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime-saveable:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime:1.8.2
|
||||
org.jetbrains.compose.ui:ui-geometry:1.8.2
|
||||
org.jetbrains.compose.ui:ui-graphics:1.8.2
|
||||
org.jetbrains.compose.ui:ui-text:1.8.2
|
||||
org.jetbrains.compose.ui:ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.ui:ui-unit:1.8.2
|
||||
org.jetbrains.compose.ui:ui-util:1.8.2
|
||||
org.jetbrains.compose.ui:ui:1.8.2
|
||||
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-bom:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0
|
||||
org.jetbrains:annotations:26.0.2
|
||||
org.jsoup:jsoup:1.19.1
|
||||
org.jspecify:jspecify:1.0.0
|
||||
org.minidns:minidns-client:1.1.1
|
||||
org.minidns:minidns-core:1.1.1
|
||||
org.minidns:minidns-dnssec:1.1.1
|
||||
org.minidns:minidns-hla:1.1.1
|
||||
org.minidns:minidns-iterative-resolver:1.1.1
|
||||
org.slf4j:slf4j-api:1.7.36
|
||||
307
app-thunderbird/dependencies/fullReleaseRuntimeClasspath.txt
Normal file
|
|
@ -0,0 +1,307 @@
|
|||
androidx.activity:activity-compose:1.10.1
|
||||
androidx.activity:activity-ktx:1.10.1
|
||||
androidx.activity:activity:1.10.1
|
||||
androidx.annotation:annotation-experimental:1.4.1
|
||||
androidx.annotation:annotation-jvm:1.9.1
|
||||
androidx.annotation:annotation:1.9.1
|
||||
androidx.appcompat:appcompat-resources:1.7.1
|
||||
androidx.appcompat:appcompat:1.7.1
|
||||
androidx.arch.core:core-common:2.2.0
|
||||
androidx.arch.core:core-runtime:2.2.0
|
||||
androidx.autofill:autofill:1.3.0
|
||||
androidx.biometric:biometric:1.1.0
|
||||
androidx.browser:browser:1.3.0
|
||||
androidx.camera:camera-camera2:1.4.2
|
||||
androidx.camera:camera-core:1.4.2
|
||||
androidx.camera:camera-lifecycle:1.4.2
|
||||
androidx.camera:camera-video:1.4.2
|
||||
androidx.camera:camera-view:1.4.2
|
||||
androidx.cardview:cardview:1.0.0
|
||||
androidx.collection:collection-jvm:1.5.0
|
||||
androidx.collection:collection-ktx:1.5.0
|
||||
androidx.collection:collection:1.5.0
|
||||
androidx.compose.animation:animation-android:1.8.3
|
||||
androidx.compose.animation:animation-core-android:1.8.3
|
||||
androidx.compose.animation:animation-core:1.8.3
|
||||
androidx.compose.animation:animation:1.8.3
|
||||
androidx.compose.foundation:foundation-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout:1.8.3
|
||||
androidx.compose.foundation:foundation:1.8.3
|
||||
androidx.compose.material3.adaptive:adaptive-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive:1.1.0
|
||||
androidx.compose.material3:material3-android:1.3.2
|
||||
androidx.compose.material3:material3:1.3.2
|
||||
androidx.compose.material:material-icons-core-android:1.7.8
|
||||
androidx.compose.material:material-icons-core:1.7.8
|
||||
androidx.compose.material:material-icons-extended-android:1.7.8
|
||||
androidx.compose.material:material-icons-extended:1.7.8
|
||||
androidx.compose.material:material-ripple-android:1.8.3
|
||||
androidx.compose.material:material-ripple:1.8.3
|
||||
androidx.compose.runtime:runtime-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable:1.8.3
|
||||
androidx.compose.runtime:runtime:1.8.3
|
||||
androidx.compose.ui:ui-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry:1.8.3
|
||||
androidx.compose.ui:ui-graphics-android:1.8.3
|
||||
androidx.compose.ui:ui-graphics:1.8.3
|
||||
androidx.compose.ui:ui-text-android:1.8.3
|
||||
androidx.compose.ui:ui-text:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview-android:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview:1.8.3
|
||||
androidx.compose.ui:ui-unit-android:1.8.3
|
||||
androidx.compose.ui:ui-unit:1.8.3
|
||||
androidx.compose.ui:ui-util-android:1.8.3
|
||||
androidx.compose.ui:ui-util:1.8.3
|
||||
androidx.compose.ui:ui:1.8.3
|
||||
androidx.compose:compose-bom:2025.07.00
|
||||
androidx.concurrent:concurrent-futures-ktx:1.1.0
|
||||
androidx.concurrent:concurrent-futures:1.1.0
|
||||
androidx.constraintlayout:constraintlayout-core:1.1.1
|
||||
androidx.constraintlayout:constraintlayout:2.2.1
|
||||
androidx.coordinatorlayout:coordinatorlayout:1.3.0
|
||||
androidx.core:core-ktx:1.16.0
|
||||
androidx.core:core-remoteviews:1.1.0
|
||||
androidx.core:core-splashscreen:1.0.1
|
||||
androidx.core:core-viewtree:1.0.0
|
||||
androidx.core:core:1.16.0
|
||||
androidx.cursoradapter:cursoradapter:1.0.0
|
||||
androidx.customview:customview-poolingcontainer:1.0.0
|
||||
androidx.customview:customview:1.1.0
|
||||
androidx.datastore:datastore-core:1.0.0
|
||||
androidx.datastore:datastore-preferences-core:1.0.0
|
||||
androidx.datastore:datastore-preferences:1.0.0
|
||||
androidx.datastore:datastore:1.0.0
|
||||
androidx.documentfile:documentfile:1.0.0
|
||||
androidx.drawerlayout:drawerlayout:1.1.1
|
||||
androidx.dynamicanimation:dynamicanimation:1.0.0
|
||||
androidx.emoji2:emoji2-views-helper:1.4.0
|
||||
androidx.emoji2:emoji2:1.4.0
|
||||
androidx.exifinterface:exifinterface:1.4.1
|
||||
androidx.fragment:fragment-compose:1.8.8
|
||||
androidx.fragment:fragment-ktx:1.8.8
|
||||
androidx.fragment:fragment:1.8.8
|
||||
androidx.glance:glance-appwidget-external-protobuf:1.1.1
|
||||
androidx.glance:glance-appwidget-proto:1.1.1
|
||||
androidx.glance:glance-appwidget:1.1.1
|
||||
androidx.glance:glance-material3:1.1.1
|
||||
androidx.glance:glance:1.1.1
|
||||
androidx.graphics:graphics-path:1.0.1
|
||||
androidx.interpolator:interpolator:1.0.0
|
||||
androidx.legacy:legacy-support-core-utils:1.0.0
|
||||
androidx.lifecycle:lifecycle-common-java8:2.9.2
|
||||
androidx.lifecycle:lifecycle-common-jvm:2.9.2
|
||||
androidx.lifecycle:lifecycle-common:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata:2.9.2
|
||||
androidx.lifecycle:lifecycle-process:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime:2.9.2
|
||||
androidx.lifecycle:lifecycle-service:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel:2.9.2
|
||||
androidx.loader:loader:1.0.0
|
||||
androidx.localbroadcastmanager:localbroadcastmanager:1.1.0
|
||||
androidx.navigation:navigation-common-android:2.9.3
|
||||
androidx.navigation:navigation-common:2.9.3
|
||||
androidx.navigation:navigation-compose-android:2.9.3
|
||||
androidx.navigation:navigation-compose:2.9.3
|
||||
androidx.navigation:navigation-fragment:2.9.3
|
||||
androidx.navigation:navigation-runtime-android:2.9.3
|
||||
androidx.navigation:navigation-runtime:2.9.3
|
||||
androidx.navigation:navigation-ui:2.9.3
|
||||
androidx.preference:preference:1.2.1
|
||||
androidx.print:print:1.0.0
|
||||
androidx.profileinstaller:profileinstaller:1.4.1
|
||||
androidx.recyclerview:recyclerview:1.4.0
|
||||
androidx.resourceinspection:resourceinspection-annotation:1.0.1
|
||||
androidx.room:room-common:2.6.1
|
||||
androidx.room:room-ktx:2.6.1
|
||||
androidx.room:room-runtime:2.6.1
|
||||
androidx.savedstate:savedstate-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose:1.3.1
|
||||
androidx.savedstate:savedstate-ktx:1.3.1
|
||||
androidx.savedstate:savedstate:1.3.1
|
||||
androidx.slidingpanelayout:slidingpanelayout:1.2.0
|
||||
androidx.sqlite:sqlite-framework:2.4.0
|
||||
androidx.sqlite:sqlite:2.4.0
|
||||
androidx.startup:startup-runtime:1.1.1
|
||||
androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
|
||||
androidx.tracing:tracing-ktx:1.2.0
|
||||
androidx.tracing:tracing:1.2.0
|
||||
androidx.transition:transition:1.5.0
|
||||
androidx.vectordrawable:vectordrawable-animated:1.2.0
|
||||
androidx.vectordrawable:vectordrawable:1.2.0
|
||||
androidx.versionedparcelable:versionedparcelable:1.1.1
|
||||
androidx.viewpager2:viewpager2:1.1.0-beta02
|
||||
androidx.viewpager:viewpager:1.0.0
|
||||
androidx.webkit:webkit:1.14.0
|
||||
androidx.window.extensions.core:core:1.0.0
|
||||
androidx.window:window-core-android:1.3.0
|
||||
androidx.window:window-core:1.3.0
|
||||
androidx.window:window:1.3.0
|
||||
androidx.work:work-runtime-ktx:2.10.3
|
||||
androidx.work:work-runtime:2.10.3
|
||||
co.touchlab:stately-concurrency-jvm:2.1.0
|
||||
co.touchlab:stately-concurrency:2.1.0
|
||||
co.touchlab:stately-concurrent-collections-jvm:2.1.0
|
||||
co.touchlab:stately-concurrent-collections:2.1.0
|
||||
co.touchlab:stately-strict-jvm:2.1.0
|
||||
co.touchlab:stately-strict:2.1.0
|
||||
com.android.billingclient:billing-ktx:7.1.1
|
||||
com.android.billingclient:billing:7.1.1
|
||||
com.beetstra.jutf7:jutf7:1.0.0
|
||||
com.github.ByteHamster:SearchPreference:2.7.3
|
||||
com.github.bumptech.glide:annotations:4.16.0
|
||||
com.github.bumptech.glide:disklrucache:4.16.0
|
||||
com.github.bumptech.glide:gifdecoder:4.16.0
|
||||
com.github.bumptech.glide:glide:4.16.0
|
||||
com.github.skydoves:landscapist-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3:2.5.1
|
||||
com.github.skydoves:landscapist:2.5.1
|
||||
com.google.android.datatransport:transport-api:3.0.0
|
||||
com.google.android.datatransport:transport-backend-cct:3.1.8
|
||||
com.google.android.datatransport:transport-runtime:3.1.8
|
||||
com.google.android.flexbox:flexbox:3.0.0
|
||||
com.google.android.gms:play-services-base:18.5.0
|
||||
com.google.android.gms:play-services-basement:18.4.0
|
||||
com.google.android.gms:play-services-location:19.0.0
|
||||
com.google.android.gms:play-services-places-placereport:17.0.0
|
||||
com.google.android.gms:play-services-tasks:18.2.0
|
||||
com.google.android.material:material:1.12.0
|
||||
com.google.auto.value:auto-value-annotations:1.6.3
|
||||
com.google.errorprone:error_prone_annotations:2.15.0
|
||||
com.google.firebase:firebase-encoders-json:18.0.0
|
||||
com.google.firebase:firebase-encoders-proto:16.0.0
|
||||
com.google.firebase:firebase-encoders:17.0.0
|
||||
com.google.guava:listenablefuture:1.0
|
||||
com.google.zxing:core:3.5.3
|
||||
com.jakewharton.timber:timber:5.0.1
|
||||
com.jcraft:jzlib:1.0.7
|
||||
com.mikepenz:fastadapter-extensions-drag:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-expandable:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-swipe:5.7.0
|
||||
com.mikepenz:fastadapter-extensions-utils:5.7.0
|
||||
com.mikepenz:fastadapter:5.7.0
|
||||
com.squareup.moshi:moshi:1.15.2
|
||||
com.squareup.okhttp3:okhttp:4.12.0
|
||||
com.squareup.okio:okio-jvm:3.16.0
|
||||
com.squareup.okio:okio:3.16.0
|
||||
com.takisoft.colorpicker:colorpicker:1.0.0
|
||||
com.takisoft.datetimepicker:datetimepicker:1.0.2
|
||||
com.takisoft.preferencex:preferencex-colorpicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex-datetimepicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex:1.1.0
|
||||
commons-io:commons-io:2.20.0
|
||||
de.cketti.library.changelog:ckchangelog-core:2.0.0-beta02
|
||||
de.cketti.safecontentresolver:safe-content-resolver-v21:1.0.0
|
||||
de.hdodenhof:circleimageview:3.1.0
|
||||
io.coil-kt.coil3:coil-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core:3.2.0
|
||||
io.coil-kt.coil3:coil-gif:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp-jvm:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp:3.2.0
|
||||
io.coil-kt.coil3:coil-video:3.2.0
|
||||
io.coil-kt.coil3:coil:3.2.0
|
||||
io.insert-koin:koin-android:4.1.0
|
||||
io.insert-koin:koin-androidx-compose:4.1.0
|
||||
io.insert-koin:koin-bom:4.1.0
|
||||
io.insert-koin:koin-compose-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel:4.1.0
|
||||
io.insert-koin:koin-compose:4.1.0
|
||||
io.insert-koin:koin-core-jvm:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel:4.1.0
|
||||
io.insert-koin:koin-core:4.1.0
|
||||
javax.inject:javax.inject:1
|
||||
net.jcip:jcip-annotations:1.0
|
||||
net.openid:appauth:0.11.1
|
||||
org.apache.commons:commons-lang3:3.7
|
||||
org.apache.commons:commons-text:1.3
|
||||
org.apache.httpcomponents.client5:httpclient5:5.5
|
||||
org.apache.httpcomponents.core5:httpcore5-h2:5.3.4
|
||||
org.apache.httpcomponents.core5:httpcore5:5.3.4
|
||||
org.apache.james:apache-mime4j-core:0.8.13
|
||||
org.apache.james:apache-mime4j-dom:0.8.13
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-common:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel:2.9.1
|
||||
org.jetbrains.androidx.savedstate:savedstate:1.3.1
|
||||
org.jetbrains.compose.animation:animation-core:1.8.2
|
||||
org.jetbrains.compose.animation:animation:1.8.2
|
||||
org.jetbrains.compose.annotation-internal:annotation:1.8.2
|
||||
org.jetbrains.compose.collection-internal:collection:1.8.2
|
||||
org.jetbrains.compose.components:components-resources-android:1.8.2
|
||||
org.jetbrains.compose.components:components-resources:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation-layout:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime-saveable:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime:1.8.2
|
||||
org.jetbrains.compose.ui:ui-geometry:1.8.2
|
||||
org.jetbrains.compose.ui:ui-graphics:1.8.2
|
||||
org.jetbrains.compose.ui:ui-text:1.8.2
|
||||
org.jetbrains.compose.ui:ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.ui:ui-unit:1.8.2
|
||||
org.jetbrains.compose.ui:ui-util:1.8.2
|
||||
org.jetbrains.compose.ui:ui:1.8.2
|
||||
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-bom:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0
|
||||
org.jetbrains:annotations:26.0.2
|
||||
org.jsoup:jsoup:1.19.1
|
||||
org.jspecify:jspecify:1.0.0
|
||||
org.minidns:minidns-client:1.1.1
|
||||
org.minidns:minidns-core:1.1.1
|
||||
org.minidns:minidns-dnssec:1.1.1
|
||||
org.minidns:minidns-hla:1.1.1
|
||||
org.minidns:minidns-iterative-resolver:1.1.1
|
||||
org.slf4j:slf4j-api:1.7.36
|
||||
64
app-thunderbird/proguard-rules.pro
vendored
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
# Add project specific ProGuard rules here.
|
||||
|
||||
-dontobfuscate
|
||||
|
||||
# Preserve the line number information for debugging stack traces.
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# Library specific rules
|
||||
-dontnote android.net.http.*
|
||||
-dontnote org.apache.commons.codec.**
|
||||
-dontnote org.apache.http.**
|
||||
-dontnote com.squareup.moshi.**
|
||||
-dontnote com.github.amlcurran.showcaseview.**
|
||||
-dontnote de.cketti.safecontentresolver.**
|
||||
-dontnote com.tokenautocomplete.**
|
||||
|
||||
-dontwarn okio.**
|
||||
-dontwarn com.squareup.moshi.**
|
||||
|
||||
# Glide
|
||||
-keep public class * extends com.bumptech.glide.module.AppGlideModule
|
||||
-keep public class * extends com.bumptech.glide.module.LibraryGlideModule
|
||||
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
|
||||
**[] $VALUES;
|
||||
public *;
|
||||
}
|
||||
|
||||
# Project specific rules
|
||||
-dontnote com.fsck.k9.ui.messageview.**
|
||||
-dontnote com.fsck.k9.view.**
|
||||
|
||||
-assumevalues class * extends android.view.View {
|
||||
boolean isInEditMode() return false;
|
||||
}
|
||||
|
||||
-keep public class org.openintents.openpgp.**
|
||||
|
||||
-keepclassmembers class * extends androidx.appcompat.widget.SearchView {
|
||||
public <init>(android.content.Context);
|
||||
}
|
||||
|
||||
-keep class com.fsck.k9.mail.oauth.XOAuth2Response { *; }
|
||||
|
||||
# okhttp rules
|
||||
# see: https://github.com/square/okhttp/blob/master/okhttp/src/main/resources/META-INF/proguard/okhttp3.pro
|
||||
|
||||
# JSR 305 annotations are for embedding nullability information.
|
||||
-dontwarn javax.annotation.**
|
||||
|
||||
# A resource is loaded with a relative path so the package of this class must be preserved.
|
||||
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
|
||||
|
||||
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
|
||||
-dontwarn org.codehaus.mojo.animal_sniffer.*
|
||||
|
||||
# OkHttp platform used only on JVM and when Conscrypt dependency is available.
|
||||
-dontwarn okhttp3.internal.platform.ConscryptPlatform
|
||||
|
||||
-dontwarn kotlinx.serialization.KSerializer
|
||||
-dontwarn kotlinx.serialization.Serializable
|
||||
-dontwarn org.apache.http.client.methods.CloseableHttpResponse
|
||||
-dontwarn org.slf4j.impl.StaticLoggerBinder
|
||||
|
||||
-keep,allowshrinking class com.tokenautocomplete.TokenCompleteTextView
|
||||
39
app-thunderbird/src/beta/AndroidManifest.xml
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><!-- TODO remove once OAuth ids have been moved from TBD to TBA -->
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:installLocation="auto"
|
||||
>
|
||||
|
||||
<application>
|
||||
<activity
|
||||
android:name="net.openid.appauth.RedirectUriReceiverActivity"
|
||||
android:exported="true"
|
||||
>
|
||||
|
||||
<!-- The library's default intent filter with `appAuthRedirectScheme` replaced by `applicationId` -->
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data android:scheme="${applicationId}" />
|
||||
<data android:scheme="${applicationId}.mobile" />
|
||||
</intent-filter>
|
||||
|
||||
<!-- Microsoft uses a special redirect URI format for Android apps -->
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:host="${applicationId}"
|
||||
android:scheme="msauth"
|
||||
/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
package net.thunderbird.android.auth
|
||||
|
||||
import net.thunderbird.android.BuildConfig
|
||||
import net.thunderbird.core.common.oauth.OAuthConfiguration
|
||||
import net.thunderbird.core.common.oauth.OAuthConfigurationFactory
|
||||
|
||||
@Suppress("ktlint:standard:max-line-length")
|
||||
class TbOAuthConfigurationFactory : OAuthConfigurationFactory {
|
||||
override fun createConfigurations(): Map<List<String>, OAuthConfiguration> {
|
||||
return mapOf(
|
||||
createAolConfiguration(),
|
||||
createFastmailConfiguration(),
|
||||
createGmailConfiguration(),
|
||||
createMicrosoftConfiguration(),
|
||||
createYahooConfiguration(),
|
||||
)
|
||||
}
|
||||
|
||||
private fun createAolConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.aol.com",
|
||||
"smtp.aol.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "dj0yJmk9UjJhdndGbFpCUnlxJmQ9WVdrOU9GbHVUVkpoT1d3bWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PWU3",
|
||||
scopes = listOf("mail-w"),
|
||||
authorizationEndpoint = "https://api.login.aol.com/oauth2/request_auth",
|
||||
tokenEndpoint = "https://api.login.aol.com/oauth2/get_token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createFastmailConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.fastmail.com",
|
||||
"smtp.fastmail.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "353e41ae",
|
||||
scopes = listOf("https://www.fastmail.com/dev/protocol-imap", "https://www.fastmail.com/dev/protocol-smtp"),
|
||||
authorizationEndpoint = "https://api.fastmail.com/oauth/authorize",
|
||||
tokenEndpoint = "https://api.fastmail.com/oauth/refresh",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
// TODO: Update clientId and redirectUri once new client ID is available
|
||||
private fun createGmailConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.gmail.com",
|
||||
"imap.googlemail.com",
|
||||
"smtp.gmail.com",
|
||||
"smtp.googlemail.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "560629489500-rvmv3suifbrl1888pl6ppulog8krnlcp.apps.googleusercontent.com",
|
||||
scopes = listOf("https://mail.google.com/"),
|
||||
authorizationEndpoint = "https://accounts.google.com/o/oauth2/v2/auth",
|
||||
tokenEndpoint = "https://oauth2.googleapis.com/token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}.mobile:/oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createMicrosoftConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"outlook.office365.com",
|
||||
"smtp.office365.com",
|
||||
"smtp-mail.outlook.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "e6f8716e-299d-4ed9-bbf3-453f192f44e5",
|
||||
scopes = listOf(
|
||||
"openid",
|
||||
"email",
|
||||
"https://outlook.office.com/IMAP.AccessAsUser.All",
|
||||
"https://outlook.office.com/SMTP.Send",
|
||||
"offline_access",
|
||||
),
|
||||
authorizationEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
|
||||
tokenEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/token",
|
||||
redirectUri = "msauth://net.thunderbird.android.beta/oXQR8QkspkdQCotvApfiBQiPQBU%3D",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createYahooConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.mail.yahoo.com",
|
||||
"smtp.mail.yahoo.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "dj0yJmk9Rjc5SXlhQjltcjhnJmQ9WVdrOVkxTmtZbmxDVjNrbWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PThm",
|
||||
scopes = listOf("mail-w"),
|
||||
authorizationEndpoint = "https://api.login.yahoo.com/oauth2/request_auth",
|
||||
tokenEndpoint = "https://api.login.yahoo.com/oauth2/get_token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package net.thunderbird.android.dev
|
||||
|
||||
import app.k9mail.autodiscovery.api.AutoDiscovery
|
||||
import com.fsck.k9.backend.BackendFactory
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.core.qualifier.named
|
||||
|
||||
fun Module.developmentModuleAdditions() {
|
||||
single<Map<String, BackendFactory>>(named("developmentBackends")) {
|
||||
emptyMap()
|
||||
}
|
||||
single<List<AutoDiscovery>>(named("extraAutoDiscoveries")) {
|
||||
emptyList()
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package net.thunderbird.android.featureflag
|
||||
|
||||
import net.thunderbird.core.featureflag.FeatureFlag
|
||||
import net.thunderbird.core.featureflag.FeatureFlagFactory
|
||||
import net.thunderbird.core.featureflag.FeatureFlagKey
|
||||
import net.thunderbird.core.featureflag.toFeatureFlagKey
|
||||
|
||||
/**
|
||||
* Feature flags for Thunderbird Beta
|
||||
*/
|
||||
class TbFeatureFlagFactory : FeatureFlagFactory {
|
||||
override fun createFeatureCatalog(): List<FeatureFlag> {
|
||||
return listOf(
|
||||
FeatureFlag("archive_marks_as_read".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("new_account_settings".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("disable_font_size_config".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("email_notification_default".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("enable_dropdown_drawer".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("enable_dropdown_drawer_ui".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag(FeatureFlagKey.DisplayInAppNotifications, enabled = true),
|
||||
FeatureFlag(FeatureFlagKey.UseNotificationSenderForSystemNotifications, enabled = false),
|
||||
)
|
||||
}
|
||||
}
|
||||
326
app-thunderbird/src/beta/res/drawable/ic_app_logo.xml
Normal file
|
|
@ -0,0 +1,326 @@
|
|||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="72dp"
|
||||
android:height="72dp"
|
||||
android:viewportWidth="1024"
|
||||
android:viewportHeight="1024"
|
||||
>
|
||||
<path
|
||||
android:fillColor="#008787"
|
||||
android:pathData="M866.3,634H493.4C482.5,634 473.6,642.9 473.6,653.8V713.5C473.6,801.4 544.8,872.6 632.6,872.6H839C904.8,872.6 958.3,819.2 958.3,753.3V701.1C958.3,671.2 928.4,634 866.3,634Z"
|
||||
/>
|
||||
<path android:pathData="M439.5,260.2L439.6,260.2C466.3,167 582.5,121.5 700.9,121.5C782.7,121.5 856.2,147.4 906.5,188.5C875.3,190.1 845.7,196.2 818.5,206C859.2,221.1 894.2,244.4 920.1,273.2C902.9,270.2 885,268.7 866.8,268.7C864.8,268.7 862.8,268.7 860.9,268.7C907.9,337 935.5,419.7 935.5,508.9C935.5,742.8 745.9,932.4 512,932.4C281.7,932.4 88.5,739.5 88.5,508.9C88.5,472.4 93.3,434.8 102.7,399.5C105.2,392.1 108.6,385 113.2,382.4C118.9,379.2 124.1,388.9 125,392C131.2,415.3 139.5,437.9 149.8,459.5C148.9,411.1 169.6,367.1 198,329C217,303.6 234.5,280 242.6,212.1C243.2,207.6 247.5,204.3 251.9,205.7C313.5,225.9 346.5,328.6 341.4,414.4C375.4,419.3 375.3,383.7 375.3,383.7C364.4,350.2 371.6,288 439.4,260.2L439.5,260.2Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="832.5"
|
||||
android:endY="817.9"
|
||||
android:startX="235.5"
|
||||
android:startY="261.1"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FF1B91F3"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF0B68CB"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillAlpha="0.9"
|
||||
android:pathData="M921.6,401C931.9,633.9 740.5,834.8 507,834.8C288.4,834.8 109.3,665.8 93.1,451.4C90.2,471.2 88.7,491.4 88.5,512C90.2,741.5 282.9,932.4 512,932.4C745.9,932.4 935.5,742.8 935.5,508.9C935.5,471.6 930.7,435.5 921.6,401Z"
|
||||
android:strokeAlpha="0.9"
|
||||
>
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="234.4"
|
||||
android:centerY="452.7"
|
||||
android:gradientRadius="358.1"
|
||||
android:type="radial"
|
||||
>
|
||||
<item
|
||||
android:color="#000B4186"
|
||||
android:offset="0.5"
|
||||
/>
|
||||
<item
|
||||
android:color="#720B4186"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M501.7,291.1C497.1,283 476,271.1 466.8,269C501.7,157.4 679.2,123.1 787.9,142.8C833.1,151.1 889.4,175.7 906.5,188.5C856.2,147.4 782.7,121.5 700.9,121.5C582.5,121.5 466.3,167 439.6,260.2L439.5,260.2L439.4,260.2C371.6,288 364.4,350.3 375.3,383.7C385.7,343.8 435.5,294.8 501.7,291.1Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="522.9"
|
||||
android:centerY="305.6"
|
||||
android:gradientRadius="76.6"
|
||||
android:type="radial"
|
||||
>
|
||||
<item
|
||||
android:color="#00A29CF6"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FFA39BF6"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M624.7,214C529.6,232.7 498.5,238.8 466.7,269.1C502.4,174.4 593.7,155.3 702.5,198.4C672.5,204.6 646.9,209.6 624.7,214Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="616.4"
|
||||
android:endY="164.5"
|
||||
android:startX="401.6"
|
||||
android:startY="403.6"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FF0F5DB0"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#000F5DB0"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M111.5,386.6C85.5,493 105.6,618 223.7,723C188.5,684.6 145.6,542.6 240.3,441.2C246.7,434.4 257.6,439.4 258,448.8C265.8,659.5 435.8,788.2 631.9,764.1C571.1,760.7 370.3,690.4 519.7,662.5C597.8,648 720.3,625.2 720.3,515.3C720.3,337.1 582.5,285 499,292.8C441.8,298.1 391,334.4 375.3,383.7C381.3,403.1 357.4,416.8 341.4,414.5C346.5,328.6 313.5,225.9 251.9,205.7C247.5,204.3 243.2,207.6 242.6,212.1C234.5,280 217,303.6 198,329C169.6,367.1 148.9,411.1 149.8,459.5C139.5,437.9 131.2,415.3 125,392C124.3,389.4 120.5,382.1 115.9,381.8C113.4,381.6 112.1,384 111.5,386.6Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="352.3"
|
||||
android:centerY="739.6"
|
||||
android:gradientRadius="558.7"
|
||||
android:type="radial"
|
||||
>
|
||||
<item
|
||||
android:color="#FF094188"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#000B4186"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M467.2,673.3C582.2,766.7 813.5,696.7 813.5,469.6C720.1,611.2 601.2,708.8 467.2,673.3Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="709.2"
|
||||
android:endY="769.6"
|
||||
android:startX="778.1"
|
||||
android:startY="576.8"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#007B8BE9"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF7B8BE9"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M240.3,441.2C242.7,438.6 245.8,437.7 248.7,438.1C164,541.5 232.3,723.1 279.3,767.7C281.9,775.1 234.8,736.5 228.3,727.5C192.6,697.2 141.4,547.1 240.3,441.2Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="240.8"
|
||||
android:endY="713.3"
|
||||
android:startX="182.9"
|
||||
android:startY="437.5"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFC59FF9"
|
||||
android:offset="0.1"
|
||||
/>
|
||||
<item
|
||||
android:color="#00C59FF9"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M512,681.9C627,681.9 720.3,605.8 720.3,511.9C720.3,418.1 627,342 512,342C413.9,342 303.7,405.8 303.7,514.4C303.8,682.2 481,778.7 632.1,764.1C620.8,762.8 550,759 502.1,704.9C497.8,700 490.3,691.5 493.7,686C497.1,680.4 506.5,681.9 512,681.9Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="512"
|
||||
android:endY="762.4"
|
||||
android:startX="512"
|
||||
android:startY="404.2"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFFFFFFF"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FFBEE1FE"
|
||||
android:offset="0.9"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF96CEFD"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillAlpha="0.7"
|
||||
android:pathData="M512,681.9C627,681.9 720.3,605.8 720.3,511.9C720.3,483.3 711.6,456.3 696.2,432.6L530.9,582.7C519.4,593.2 499.9,593.2 488.4,582.7L326.2,435.4C312,458.1 303.7,484.5 303.7,514.4C303.8,682.2 481,778.7 632.1,764.1C631.5,764 630.6,763.9 629.5,763.8L629.5,763.8C612.3,762.2 547.1,755.8 502.1,704.9C497.8,700 490.3,691.5 493.7,686C496.6,681.3 503.6,681.6 509.1,681.8C510.1,681.8 511.1,681.9 512,681.9Z"
|
||||
android:strokeAlpha="0.7"
|
||||
>
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="518.7"
|
||||
android:endY="756.9"
|
||||
android:startX="518.7"
|
||||
android:startY="606.9"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFBCE0FD"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF88CCFC"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#B5DBF9"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M446.7,602.8C408.5,561.7 326.5,435.5 326.5,435.5L328,432L487.9,568.5C498.7,576.3 514,576.3 524.7,568.3L680.6,435.2H697C697,435.2 612.2,555.6 568.7,602.8C525.1,650 484.8,644 446.7,602.8Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#A8D3F6"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M463.9,598.6C433.3,566.7 326.3,435.1 326.3,435.1L331.7,432L492.3,568.3C503.1,576.2 518.4,576.1 529.1,568.1L685,435.1H697.1C697.1,435.1 588.8,564 554.7,598.1C520.7,632.2 494.6,630.5 463.9,598.6Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#93C5ED"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M463.9,593.7C433.3,561.8 335.9,444.7 335.9,444.7L348.5,456.1L492.3,563.5C503.1,571.3 518.4,571.2 529.1,563.3L670.1,456.2L682.6,449C682.6,449 588.8,559.2 554.7,593.3C520.7,627.4 494.6,625.7 463.9,593.7Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#7DB6E4"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M463.7,583.7C433,551.8 341.1,445.7 341.1,445.7L348.2,446L492,553.5C502.8,561.3 518.2,561.2 528.8,553.3L669.9,446.2L677.4,445.6C677.4,445.6 588.5,549.1 554.5,583.2C520.4,617.4 494.3,615.6 463.7,583.7Z"
|
||||
/>
|
||||
<path android:pathData="M532.4,592.4L697.4,434.9C662.5,381 598.1,342 512.1,342C441,342 363.4,375.5 326.2,435.3L486,592.4C497.5,602.9 520.9,602.9 532.4,592.4Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="511.8"
|
||||
android:endY="771.6"
|
||||
android:startX="511.3"
|
||||
android:startY="378.5"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFFFFFFF"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FFBEE1FE"
|
||||
android:offset="0.9"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF96CEFD"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillAlpha="0.6"
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M697.6,434.7L533,592.2C518.4,602.6 502.8,603.3 487.5,593.9L326.1,435.3C330.6,427.9 335.8,420.9 341.5,414.2C347.3,419.7 353,425 358.5,430.1C400.9,469.8 435.2,501.9 483.5,543.2C505.3,561.8 512.1,561.4 533.4,543.2C588.7,496 629.1,460.3 681.7,413.4C687.6,420.1 692.9,427.3 697.6,434.7Z"
|
||||
android:strokeAlpha="0.6"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M541.2,257C563.5,249.9 561.6,227.9 561.6,227.9C561.6,227.9 550.4,214.8 528.3,222C507.7,228.8 504.4,243.6 504.4,243.6C504.4,243.6 515.7,265 541.2,257Z"
|
||||
/>
|
||||
<path
|
||||
android:fillAlpha="0.2"
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M891,698.4C821.5,837.2 677.9,932.4 512.1,932.4C483.8,932.4 456,929.5 429,924V859.4C429,770.5 497.3,698.4 581.5,698.4H891Z"
|
||||
android:strokeAlpha="0.2"
|
||||
/>
|
||||
<path
|
||||
android:fillAlpha="0.9"
|
||||
android:pathData="M866.3,634H493.4C482.5,634 473.6,642.9 473.6,653.8V713.5C473.6,801.4 544.8,872.6 632.6,872.6H839C904.8,872.6 958.3,819.2 958.3,753.3V701.1C958.3,671.2 928.4,634 866.3,634Z"
|
||||
android:strokeAlpha="0.9"
|
||||
>
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="727.4"
|
||||
android:endY="740.7"
|
||||
android:startX="856.4"
|
||||
android:startY="862.9"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#7F054096"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#700F3D9C"
|
||||
android:offset="0.1"
|
||||
/>
|
||||
<item
|
||||
android:color="#3F2F35B1"
|
||||
android:offset="0.3"
|
||||
/>
|
||||
<item
|
||||
android:color="#1C462FBF"
|
||||
android:offset="0.5"
|
||||
/>
|
||||
<item
|
||||
android:color="#07542BC8"
|
||||
android:offset="0.7"
|
||||
/>
|
||||
<item
|
||||
android:color="#00592ACB"
|
||||
android:offset="0.9"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M938.4,720.9H595.6C514.5,720.9 448.7,786.7 448.7,867.8V939.7C448.7,950.7 457.6,959.6 468.6,959.6H811.4C892.5,959.6 958.3,893.8 958.3,812.7V701.1C958.3,712.1 949.4,720.9 938.4,720.9Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="970.6"
|
||||
android:endY="940"
|
||||
android:startX="504.7"
|
||||
android:startY="742.8"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FF54FFBD"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF00DDFF"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#20123A"
|
||||
android:pathData="M537,790.9H578.2C600.2,790.9 612.7,800.9 612.7,818.7C612.8,822.8 611.8,826.9 609.8,830.4C607.8,834 604.8,836.9 601.2,838.9C609.5,843.1 614.2,850.6 614.2,861C614.2,880.6 600.5,890.4 578.4,890.4H537V790.9ZM555.9,808V831H578.8C589.1,831 593.4,825.9 593.4,819.1C593.4,812.2 588.6,808 578.6,808H555.9ZM555.9,848.3V873.1H578.7C589.2,873.1 594.7,868.3 594.7,860.6C594.7,852.8 590,848.3 577.9,848.3H555.9ZM632.5,790.9H699.5V809H651.8V831.4H699.5V849.5H651.8V872.2H699.5V890.4H632.5V790.9ZM743.7,808.6H716V790.9H790V808.6H762.6V890.4H743.6L743.7,808.6ZM822.6,790.9H841.5L879.2,890.4H859.4L852.8,872.3H811.3L804.7,890.4H785L822.6,790.9ZM817.7,854.8H846.4L832.1,815.3L817.7,854.8Z"
|
||||
/>
|
||||
</vector>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="72dp"
|
||||
android:height="72dp"
|
||||
android:viewportWidth="1024"
|
||||
android:viewportHeight="1024"
|
||||
>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M595.6,720.9H938.4C949.4,720.9 958.3,712 958.3,701.1V812.7C958.3,893.8 892.5,959.6 811.4,959.6H468.6C457.6,959.6 448.7,950.7 448.7,939.7V867.8C448.7,786.7 514.5,720.9 595.6,720.9ZM578.2,790.9H537V890.4H578.4C600.5,890.4 614.2,880.6 614.2,861C614.2,850.6 609.5,843.1 601.2,838.9C604.8,836.9 607.8,834 609.8,830.4C611.8,826.9 612.8,822.8 612.7,818.7C612.7,800.9 600.2,790.9 578.2,790.9ZM555.9,831V808H578.6C588.6,808 593.4,812.2 593.4,819.1C593.4,825.9 589.1,831 578.8,831H555.9ZM555.9,873.1V848.3H577.9C590,848.3 594.7,852.8 594.7,860.6C594.7,868.3 589.2,873.1 578.7,873.1H555.9ZM699.5,790.9H632.5V890.4H699.5V872.2H651.8V849.5H699.5V831.4H651.8V809H699.5V790.9ZM716,808.6H743.7L743.6,890.4H762.6V808.6H790V790.9H716V808.6ZM841.5,790.9H822.6L785,890.4H804.7L811.3,872.3H852.8L859.4,890.4H879.2L841.5,790.9ZM846.4,854.8H817.7L832.1,815.3L846.4,854.8Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M440,249.7L440.1,249.7C466.8,156.5 583,111 701.4,111C783.2,111 856.7,136.9 907,178C875.8,179.6 846.2,185.7 819,195.5C859.7,210.7 894.7,233.9 920.6,262.7C903.4,259.7 885.5,258.2 867.3,258.2C865.3,258.2 863.3,258.2 861.4,258.2C908.4,326.5 936,409.2 936,498.4C936,575 915.6,646.9 880,708.9H595.6C573.7,708.9 552.7,713.4 533.7,721.4C522.9,714.2 512.3,705.3 502.6,694.4C498.3,689.5 490.8,681 494.2,675.5C497.1,670.8 504.1,671.1 509.6,671.3L509.6,671.3C510.6,671.4 511.6,671.4 512.5,671.4C627.5,671.4 720.8,595.3 720.8,501.4C720.8,407.6 627.5,331.5 512.5,331.5C465.1,331.5 415,346.4 375.8,374C375.8,373.5 375.8,373.2 375.8,373.2C364.9,339.8 372.1,277.6 439.9,249.7L440,249.7ZM501.4,739.9C394.7,707.3 304.3,623.8 304.2,503.9C304.2,464.4 318.8,430.8 342.1,404L342,404L341.9,404C347,318.1 314,215.4 252.4,195.2C248,193.8 243.7,197.1 243.1,201.6C235,269.6 217.5,293.1 198.5,318.5C170.1,356.6 149.4,400.6 150.3,449C140,427.4 131.7,404.9 125.5,381.6C124.6,378.4 119.4,368.7 113.7,372C109.1,374.6 105.7,381.7 103.2,389.1C93.8,424.3 89,462 89,498.4C89,703.2 241.3,878.2 436.7,914.9V867.8C436.7,815.3 462.2,768.8 501.4,739.9ZM541.7,246.5C564,239.5 562.1,217.4 562.1,217.4C562.1,217.4 550.9,204.3 528.8,211.6C508.2,218.4 504.9,233.1 504.9,233.1C504.9,233.1 516.2,254.5 541.7,246.5ZM341.6,435.3C341.6,435.3 433.5,541.3 464.2,573.2C494.8,605.2 520.9,606.9 555,572.8C589,538.7 677.9,435.1 677.9,435.1L670.4,435.7L529.3,542.8C518.7,550.7 503.3,550.8 492.5,543L348.7,435.6L341.6,435.3Z"
|
||||
/>
|
||||
<path
|
||||
android:fillAlpha="0.9"
|
||||
android:fillColor="#000000"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M893.8,708.9C904.8,689.2 914.2,668.4 922,646.9C939.1,656.4 950.1,670 955.1,683.7C956.3,687 955.5,691.5 954,695C948.5,708 942.7,708.9 938.4,708.9H893.8ZM911.1,641.8C902.7,665.2 892.3,687.7 880,708.9L809,708.9V635.4L866.3,634C883.8,634 898.7,636.9 911.1,641.8ZM809,720.9V767H957.5C958,762.5 958.3,757.9 958.3,753.3V701.2C958.2,709.3 953.3,716.3 946.3,719.3C943.8,720.4 941.2,720.9 938.4,720.9L887,720.9L809,720.9Z"
|
||||
android:strokeAlpha="0.9"
|
||||
/>
|
||||
</vector>
|
||||
BIN
app-thunderbird/src/beta/res/mipmap-hdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
app-thunderbird/src/beta/res/mipmap-mdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
app-thunderbird/src/beta/res/mipmap-xhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 8 KiB |
BIN
app-thunderbird/src/beta/res/mipmap-xxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
app-thunderbird/src/beta/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
4
app-thunderbird/src/beta/res/values/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name" translatable="false">Thunderbird Beta</string>
|
||||
</resources>
|
||||
27
app-thunderbird/src/daily/AndroidManifest.xml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
>
|
||||
|
||||
<application tools:ignore="MissingApplicationIcon">
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<!-- IMPORTANT: The component name must be -->
|
||||
<!-- `net.thunderbird.feature.widget.message.list.MessageListWidgetReceiver` and can't be changed. -->
|
||||
<receiver
|
||||
android:name="net.thunderbird.feature.widget.message.list.MessageListWidgetReceiver"
|
||||
android:exported="true"
|
||||
android:label="@string/message_list_glance_widget_label"
|
||||
>
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/message_list_glance_widget_info"
|
||||
/>
|
||||
</receiver>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
package net.thunderbird.android.auth
|
||||
|
||||
import net.thunderbird.android.BuildConfig
|
||||
import net.thunderbird.core.common.oauth.OAuthConfiguration
|
||||
import net.thunderbird.core.common.oauth.OAuthConfigurationFactory
|
||||
|
||||
@Suppress("ktlint:standard:max-line-length")
|
||||
class TbOAuthConfigurationFactory : OAuthConfigurationFactory {
|
||||
override fun createConfigurations(): Map<List<String>, OAuthConfiguration> {
|
||||
return mapOf(
|
||||
createAolConfiguration(),
|
||||
createGmailConfiguration(),
|
||||
createFastmailConfiguration(),
|
||||
createMicrosoftConfiguration(),
|
||||
createYahooConfiguration(),
|
||||
)
|
||||
}
|
||||
|
||||
private fun createAolConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.aol.com",
|
||||
"smtp.aol.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "dj0yJmk9Rk11R2pTTlF0TlZGJmQ9WVdrOVYxcElTMHBwWVZBbWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PWVm",
|
||||
scopes = listOf("mail-w"),
|
||||
authorizationEndpoint = "https://api.login.aol.com/oauth2/request_auth",
|
||||
tokenEndpoint = "https://api.login.aol.com/oauth2/get_token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createFastmailConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.fastmail.com",
|
||||
"smtp.fastmail.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "353e41ae",
|
||||
scopes = listOf("https://www.fastmail.com/dev/protocol-imap", "https://www.fastmail.com/dev/protocol-smtp"),
|
||||
authorizationEndpoint = "https://api.fastmail.com/oauth/authorize",
|
||||
tokenEndpoint = "https://api.fastmail.com/oauth/refresh",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createGmailConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.gmail.com",
|
||||
"imap.googlemail.com",
|
||||
"smtp.gmail.com",
|
||||
"smtp.googlemail.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "560629489500-hbru1fssmec60eoa22b8k8l5tbmj0sc1.apps.googleusercontent.com",
|
||||
scopes = listOf("https://mail.google.com/"),
|
||||
authorizationEndpoint = "https://accounts.google.com/o/oauth2/v2/auth",
|
||||
tokenEndpoint = "https://oauth2.googleapis.com/token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}:/oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createMicrosoftConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"outlook.office365.com",
|
||||
"smtp.office365.com",
|
||||
"smtp-mail.outlook.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "e6f8716e-299d-4ed9-bbf3-453f192f44e5",
|
||||
scopes = listOf(
|
||||
"openid",
|
||||
"email",
|
||||
"https://outlook.office.com/IMAP.AccessAsUser.All",
|
||||
"https://outlook.office.com/SMTP.Send",
|
||||
"offline_access",
|
||||
),
|
||||
authorizationEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
|
||||
tokenEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/token",
|
||||
redirectUri = "msauth://net.thunderbird.android.daily/KUkL9b7kcXs%2FtgmDCGD54ka8Bow%3D",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createYahooConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.mail.yahoo.com",
|
||||
"smtp.mail.yahoo.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "dj0yJmk9TTQ2U1JNTlBPQXdJJmQ9WVdrOWVIaHdkMFU0V0hZbWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PTBi",
|
||||
scopes = listOf("mail-w"),
|
||||
authorizationEndpoint = "https://api.login.yahoo.com/oauth2/request_auth",
|
||||
tokenEndpoint = "https://api.login.yahoo.com/oauth2/get_token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package net.thunderbird.android.dev
|
||||
|
||||
import app.k9mail.autodiscovery.api.AutoDiscovery
|
||||
import com.fsck.k9.backend.BackendFactory
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.core.qualifier.named
|
||||
|
||||
fun Module.developmentModuleAdditions() {
|
||||
single<Map<String, BackendFactory>>(named("developmentBackends")) {
|
||||
emptyMap()
|
||||
}
|
||||
single<List<AutoDiscovery>>(named("extraAutoDiscoveries")) {
|
||||
emptyList()
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package net.thunderbird.android.featureflag
|
||||
|
||||
import net.thunderbird.core.featureflag.FeatureFlag
|
||||
import net.thunderbird.core.featureflag.FeatureFlagFactory
|
||||
import net.thunderbird.core.featureflag.FeatureFlagKey
|
||||
import net.thunderbird.core.featureflag.toFeatureFlagKey
|
||||
|
||||
/**
|
||||
* Feature flags for Thunderbird Daily
|
||||
*/
|
||||
class TbFeatureFlagFactory : FeatureFlagFactory {
|
||||
override fun createFeatureCatalog(): List<FeatureFlag> {
|
||||
return listOf(
|
||||
FeatureFlag("archive_marks_as_read".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("new_account_settings".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("disable_font_size_config".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("email_notification_default".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("enable_dropdown_drawer".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("enable_dropdown_drawer_ui".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag(FeatureFlagKey.DisplayInAppNotifications, enabled = true),
|
||||
FeatureFlag(FeatureFlagKey.UseNotificationSenderForSystemNotifications, enabled = true),
|
||||
)
|
||||
}
|
||||
}
|
||||
253
app-thunderbird/src/daily/res/drawable/ic_app_logo.xml
Normal file
|
|
@ -0,0 +1,253 @@
|
|||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="72dp"
|
||||
android:height="72dp"
|
||||
android:viewportWidth="1024"
|
||||
android:viewportHeight="1024"
|
||||
>
|
||||
<path android:pathData="M439.5,260.2L439.6,260.2C466.3,167 582.5,121.5 700.9,121.5C782.7,121.5 856.2,147.4 906.5,188.5C875.3,190.1 845.7,196.2 818.5,206C859.2,221.1 894.2,244.4 920.1,273.2C902.9,270.2 885,268.7 866.8,268.7C864.8,268.7 862.8,268.7 860.9,268.7C907.9,337 935.5,419.7 935.5,508.9C935.5,742.8 745.9,932.4 512,932.4C281.7,932.4 88.5,739.5 88.5,508.9C88.5,472.4 93.3,434.8 102.7,399.5C105.2,392.1 108.6,385 113.2,382.4C118.9,379.2 124.1,388.9 125,392C131.2,415.3 139.5,437.9 149.8,459.5C148.9,411.1 169.6,367.1 198,329C217,303.6 234.5,280 242.6,212.1C243.2,207.6 247.5,204.3 251.9,205.7C313.5,225.9 346.5,328.6 341.4,414.4C375.4,419.3 375.3,383.7 375.3,383.7C364.4,350.2 371.6,288 439.4,260.2L439.5,260.2Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="832.5"
|
||||
android:endY="817.9"
|
||||
android:startX="396.6"
|
||||
android:startY="288.4"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFF53DB8"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF590DF2"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillAlpha="0.9"
|
||||
android:pathData="M921.6,401C931.9,633.9 740.5,834.8 507,834.8C288.4,834.8 109.3,665.8 93.1,451.4C90.2,471.2 88.7,491.4 88.5,512C90.2,741.5 282.9,932.4 512,932.4C745.9,932.4 935.5,742.8 935.5,508.9C935.5,471.6 930.7,435.5 921.6,401Z"
|
||||
android:strokeAlpha="0.9"
|
||||
>
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="234.4"
|
||||
android:centerY="452.7"
|
||||
android:gradientRadius="358.1"
|
||||
android:type="radial"
|
||||
>
|
||||
<item
|
||||
android:color="#000B4186"
|
||||
android:offset="0.5"
|
||||
/>
|
||||
<item
|
||||
android:color="#720B4186"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M502.2,291.3C497.6,283.2 476.5,271.3 467.3,269.2C502.2,157.6 679.7,123.3 788.4,143C833.6,151.3 889.9,175.9 907,188.7C856.7,147.6 783.2,121.7 701.4,121.7C583,121.7 466.7,167.2 440.1,260.4L440,260.4L439.9,260.4C372.1,288.2 364.9,350.5 375.8,383.9C386.2,344 436,295 502.2,291.3Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="442.3"
|
||||
android:endY="231"
|
||||
android:startX="587.8"
|
||||
android:startY="332.8"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#00D13AEF"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#E5F9D286"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M624.7,214C529.6,232.7 498.5,238.8 466.7,269.1C502.4,174.4 593.7,155.3 702.5,198.4C672.5,204.6 646.9,209.6 624.7,214Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="616.4"
|
||||
android:endY="164.5"
|
||||
android:startX="307.2"
|
||||
android:startY="473.7"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FF450FB0"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#00450FB0"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M111.5,386.6C85.5,493 105.6,618 223.7,723C188.5,684.6 145.6,542.6 240.3,441.2C246.7,434.4 257.6,439.4 258,448.8C265.8,659.5 435.8,788.2 631.9,764.1C571.1,760.7 370.3,690.4 519.7,662.5C597.8,648 720.3,625.2 720.3,515.3C720.3,337.1 582.5,285 499,292.8C441.8,298.1 391,334.4 375.3,383.7C381.3,403.1 357.4,416.8 341.4,414.5C346.5,328.6 313.5,225.9 251.9,205.7C247.5,204.3 243.2,207.6 242.6,212.1C234.5,280 217,303.6 198,329C169.6,367.1 148.9,411.1 149.8,459.5C139.5,437.9 131.2,415.3 125,392C124.3,389.4 120.5,382.1 115.9,381.8C113.4,381.6 112.1,384 111.5,386.6Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="352.3"
|
||||
android:centerY="739.6"
|
||||
android:gradientRadius="558.7"
|
||||
android:type="radial"
|
||||
>
|
||||
<item
|
||||
android:color="#FF650877"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#00340B86"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M467.2,673.3C582.2,766.7 813.5,696.7 813.5,469.6C720.1,611.2 601.2,708.8 467.2,673.3Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="630.1"
|
||||
android:endY="762.5"
|
||||
android:startX="778.1"
|
||||
android:startY="576.8"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#00D647E2"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#A3E7BB65"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M240.3,441.2C242.7,438.6 245.8,437.7 248.7,438.1C164,541.5 232.3,723.1 279.3,767.7C281.9,775.1 234.8,736.5 228.3,727.5C192.6,697.2 141.4,547.1 240.3,441.2Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="241.4"
|
||||
android:endY="712.5"
|
||||
android:startX="173.2"
|
||||
android:startY="429.1"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFF9BF86"
|
||||
android:offset="0.1"
|
||||
/>
|
||||
<item
|
||||
android:color="#00D63AEF"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M512,681.9C627,681.9 720.3,605.8 720.3,511.9C720.3,418.1 627,342 512,342C413.9,342 303.7,405.8 303.7,514.4C303.8,682.2 481,778.7 632.1,764.1C620.8,762.8 550,759 502.1,704.9C497.8,700 490.3,691.5 493.7,686C497.1,680.4 506.5,681.9 512,681.9Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="512"
|
||||
android:endY="762.4"
|
||||
android:startX="512"
|
||||
android:startY="404.2"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFFFFFFF"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FFBEE1FE"
|
||||
android:offset="0.9"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF96CEFD"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillAlpha="0.7"
|
||||
android:pathData="M512,681.9C627,681.9 720.3,605.8 720.3,511.9C720.3,483.3 711.6,456.3 696.2,432.6L530.9,582.7C519.4,593.2 499.9,593.2 488.4,582.7L326.2,435.4C312,458.1 303.7,484.5 303.7,514.4C303.8,682.2 481,778.7 632.1,764.1C631.5,764 630.6,763.9 629.5,763.8L629.5,763.8C612.3,762.2 547.1,755.8 502.1,704.9C497.8,700 490.3,691.5 493.7,686C496.6,681.3 503.6,681.6 509.1,681.8C510.1,681.8 511.1,681.9 512,681.9Z"
|
||||
android:strokeAlpha="0.7"
|
||||
>
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="518.7"
|
||||
android:endY="756.9"
|
||||
android:startX="518.7"
|
||||
android:startY="606.9"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFBCE0FD"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF88CCFC"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#B5DBF9"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M446.7,602.8C408.5,561.7 326.5,435 326.5,435L328,432.5L487.9,568.5C498.7,576.3 514,576.3 524.7,568.3L680.6,435.2L697.5,435C697.5,435 612.2,555.6 568.7,602.8C525.1,650 484.8,644 446.7,602.8Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#A8D3F6"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M463.9,598.6C433.3,566.7 326.3,435.1 326.3,435.1L331.7,432L492.3,568.3C503.1,576.2 518.4,576.1 529.1,568.1L685,435.1H697.1C697.1,435.1 588.8,564 554.7,598.1C520.7,632.2 494.6,630.5 463.9,598.6Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#93C5ED"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M463.9,593.7C433.3,561.8 335.9,444.7 335.9,444.7L348.5,456.1L492.3,563.5C503.1,571.3 518.4,571.2 529.1,563.3L670.1,456.2L682.6,449C682.6,449 588.8,559.2 554.7,593.3C520.7,627.4 494.6,625.7 463.9,593.7Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#7DB6E4"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M463.7,583.7C433,551.8 341.1,445.7 341.1,445.7L348.2,446L492,553.5C502.8,561.3 518.2,561.2 528.8,553.3L669.9,446.2L677.4,445.6C677.4,445.6 588.5,549.1 554.5,583.2C520.4,617.4 494.3,615.6 463.7,583.7Z"
|
||||
/>
|
||||
<path android:pathData="M532.4,592.4L697.4,434.9C662.5,381 598.1,342 512.1,342C441,342 363.4,375.5 326.2,435.3L486,592.4C497.5,602.9 520.9,602.9 532.4,592.4Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="511.8"
|
||||
android:endY="771.6"
|
||||
android:startX="511.3"
|
||||
android:startY="378.5"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFFFFFFF"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FFBEE1FE"
|
||||
android:offset="0.9"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF96CEFD"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillAlpha="0.6"
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M697.6,434.7L533,592.2C518.4,602.6 502.8,603.3 487.5,593.9L326.1,435.3C330.6,427.9 335.8,420.9 341.5,414.2C347.3,419.7 353,425 358.5,430.1C400.9,469.8 435.2,501.9 483.5,543.2C505.3,561.8 512.1,561.4 533.4,543.2C588.7,496 629.1,460.3 681.7,413.4C687.6,420.1 692.9,427.3 697.6,434.7Z"
|
||||
android:strokeAlpha="0.6"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M541.2,257C563.5,249.9 561.6,227.9 561.6,227.9C561.6,227.9 550.4,214.8 528.3,222C507.7,228.8 504.4,243.6 504.4,243.6C504.4,243.6 515.7,265 541.2,257Z"
|
||||
/>
|
||||
</vector>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="72dp"
|
||||
android:height="72dp"
|
||||
android:viewportWidth="1024"
|
||||
android:viewportHeight="1024"
|
||||
>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M595.6,720.9H938.4C949.4,720.9 958.3,712 958.3,701.1V812.7C958.3,893.8 892.5,959.6 811.4,959.6H468.6C457.6,959.6 448.7,950.7 448.7,939.7V867.8C448.7,786.7 514.5,720.9 595.6,720.9ZM521.1,890H554.1C563.5,890 571.7,888.1 578.5,884.4C585.3,880.7 590.5,875.3 594.1,868.4C597.8,861.4 599.6,853.1 599.6,843.4C599.6,833.7 597.8,825.4 594.1,818.5C590.5,811.5 585.3,806.2 578.5,802.5C571.8,798.8 563.7,796.9 554.4,796.9H521.1V890ZM553.3,873.1H540.8V813.8H553.3C559.1,813.8 564,814.8 568,816.9C572,818.9 575,822.1 577,826.5C579,830.9 580,836.5 580,843.4C580,850.3 579,856 577,860.4C575,864.7 572,868 568,870C564,872.1 559.1,873.1 553.3,873.1ZM603.9,890H625L631.9,868.8H665.5L672.4,890H693.5L661.4,796.9H636.1L603.9,890ZM660.5,853.4L649.1,818.2H648.4L636.9,853.4H660.5ZM724.4,890V796.9H704.7V890H724.4ZM740.6,796.9V890H800.2V873.8H760.3V796.9H740.6ZM817.9,796.9H795.9L829.8,857.1V890H849.4V857.1L883.3,796.9H861.3L840.1,837H839.2L817.9,796.9Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M440,249.7L440.1,249.7C466.8,156.5 583,111 701.4,111C783.2,111 856.7,136.9 907,178C875.8,179.6 846.2,185.7 819,195.5C859.7,210.7 894.7,233.9 920.6,262.7C903.4,259.7 885.5,258.2 867.3,258.2C865.3,258.2 863.3,258.2 861.4,258.2C908.4,326.5 936,409.2 936,498.4C936,575 915.6,646.9 880,708.9H595.6C573.7,708.9 552.7,713.4 533.7,721.4C522.9,714.2 512.3,705.3 502.6,694.4C498.3,689.5 490.8,681 494.2,675.5C497.1,670.8 504.1,671.1 509.6,671.3L509.6,671.3C510.6,671.4 511.6,671.4 512.5,671.4C627.5,671.4 720.8,595.3 720.8,501.4C720.8,407.6 627.5,331.5 512.5,331.5C465.1,331.5 415,346.4 375.8,374C375.8,373.5 375.8,373.2 375.8,373.2C364.9,339.8 372.1,277.6 439.9,249.7L440,249.7ZM501.4,739.9C394.7,707.3 304.3,623.8 304.2,503.9C304.2,464.4 318.8,430.8 342.1,404L342,404L341.9,404C347,318.1 314,215.4 252.4,195.2C248,193.8 243.7,197.1 243.1,201.6C235,269.6 217.5,293.1 198.5,318.5C170.1,356.6 149.4,400.6 150.3,449C140,427.4 131.7,404.9 125.5,381.6C124.6,378.4 119.4,368.7 113.7,372C109.1,374.6 105.7,381.7 103.2,389.1C93.8,424.3 89,462 89,498.4C89,703.2 241.3,878.2 436.7,914.9V867.8C436.7,815.3 462.2,768.8 501.4,739.9ZM541.7,246.5C564,239.5 562.1,217.4 562.1,217.4C562.1,217.4 550.9,204.3 528.8,211.6C508.2,218.4 504.9,233.1 504.9,233.1C504.9,233.1 516.2,254.5 541.7,246.5ZM341.6,435.3C341.6,435.3 433.5,541.3 464.2,573.2C494.8,605.2 520.9,606.9 555,572.8C589,538.7 677.9,435.1 677.9,435.1L670.4,435.7L529.3,542.8C518.7,550.7 503.3,550.8 492.5,543L348.7,435.6L341.6,435.3Z"
|
||||
/>
|
||||
<path
|
||||
android:fillAlpha="0.9"
|
||||
android:fillColor="#000000"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M893.8,708.9C904.8,689.2 914.2,668.4 922,646.9C939.1,656.4 950.1,670 955.1,683.7C956.3,687 955.5,691.5 954,695C948.5,708 942.7,708.9 938.4,708.9H893.8ZM911.1,641.8C902.7,665.2 892.3,687.7 880,708.9L809,708.9V635.4L866.3,634C883.8,634 898.7,636.9 911.1,641.8ZM809,720.9V767H957.5C958,762.5 958.3,757.9 958.3,753.3V701.2C958.2,709.3 953.3,716.3 946.3,719.3C943.8,720.4 941.2,720.9 938.4,720.9L887,720.9L809,720.9Z"
|
||||
android:strokeAlpha="0.9"
|
||||
/>
|
||||
</vector>
|
||||
BIN
app-thunderbird/src/daily/res/mipmap-hdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
app-thunderbird/src/daily/res/mipmap-mdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
app-thunderbird/src/daily/res/mipmap-xhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
app-thunderbird/src/daily/res/mipmap-xxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
app-thunderbird/src/daily/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
7
app-thunderbird/src/daily/res/raw/changelog_master.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="changelog_style.xsl"?>
|
||||
<changelog>
|
||||
<release version="Daily" versioncode="1">
|
||||
<change>Daily snapshot of github.com/thunderbird/thunderbird-android</change>
|
||||
</release>
|
||||
</changelog>
|
||||
4
app-thunderbird/src/daily/res/values/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name" translatable="false">Thunderbird Daily</string>
|
||||
</resources>
|
||||
27
app-thunderbird/src/debug/AndroidManifest.xml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
>
|
||||
|
||||
<application tools:ignore="MissingApplicationIcon">
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<!-- IMPORTANT: The component name must be -->
|
||||
<!-- `net.thunderbird.feature.widget.message.list.MessageListWidgetReceiver` and can't be changed. -->
|
||||
<receiver
|
||||
android:name="net.thunderbird.feature.widget.message.list.MessageListWidgetReceiver"
|
||||
android:exported="true"
|
||||
android:label="@string/message_list_glance_widget_label"
|
||||
>
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/message_list_glance_widget_info"
|
||||
/>
|
||||
</receiver>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
package net.thunderbird.android.auth
|
||||
|
||||
import net.thunderbird.android.BuildConfig
|
||||
import net.thunderbird.core.common.oauth.OAuthConfiguration
|
||||
import net.thunderbird.core.common.oauth.OAuthConfigurationFactory
|
||||
|
||||
@Suppress("ktlint:standard:max-line-length")
|
||||
class TbOAuthConfigurationFactory : OAuthConfigurationFactory {
|
||||
override fun createConfigurations(): Map<List<String>, OAuthConfiguration> {
|
||||
return mapOf(
|
||||
createAolConfiguration(),
|
||||
createFastmailConfiguration(),
|
||||
createGmailConfiguration(),
|
||||
createMicrosoftConfiguration(),
|
||||
createYahooConfiguration(),
|
||||
)
|
||||
}
|
||||
|
||||
private fun createAolConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.aol.com",
|
||||
"smtp.aol.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "dj0yJmk9MVJGcHpSejNUcTU3JmQ9WVdrOWMwMHhjSFZqTkhRbWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PWNk",
|
||||
scopes = listOf("mail-w"),
|
||||
authorizationEndpoint = "https://api.login.aol.com/oauth2/request_auth",
|
||||
tokenEndpoint = "https://api.login.aol.com/oauth2/get_token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createFastmailConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.fastmail.com",
|
||||
"smtp.fastmail.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "353e41ae",
|
||||
scopes = listOf("https://www.fastmail.com/dev/protocol-imap", "https://www.fastmail.com/dev/protocol-smtp"),
|
||||
authorizationEndpoint = "https://api.fastmail.com/oauth/authorize",
|
||||
tokenEndpoint = "https://api.fastmail.com/oauth/refresh",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createGmailConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.gmail.com",
|
||||
"imap.googlemail.com",
|
||||
"smtp.gmail.com",
|
||||
"smtp.googlemail.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "560629489500-no2mlau7e4vn3psh5esaiodgri09jrj9.apps.googleusercontent.com",
|
||||
scopes = listOf("https://mail.google.com/"),
|
||||
authorizationEndpoint = "https://accounts.google.com/o/oauth2/v2/auth",
|
||||
tokenEndpoint = "https://oauth2.googleapis.com/token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}:/oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createMicrosoftConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"outlook.office365.com",
|
||||
"smtp.office365.com",
|
||||
"smtp-mail.outlook.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "e6f8716e-299d-4ed9-bbf3-453f192f44e5",
|
||||
scopes = listOf(
|
||||
"openid",
|
||||
"email",
|
||||
"https://outlook.office.com/IMAP.AccessAsUser.All",
|
||||
"https://outlook.office.com/SMTP.Send",
|
||||
"offline_access",
|
||||
),
|
||||
authorizationEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
|
||||
tokenEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/token",
|
||||
redirectUri = "msauth://net.thunderbird.android.debug/eaXDuh6T3KFWjcJhsoaObT9OayU%3D",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createYahooConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.mail.yahoo.com",
|
||||
"smtp.mail.yahoo.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "dj0yJmk9bXRhTkZod2xmY3JrJmQ9WVdrOVUyUTRXRGQ0Tlc4bWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PTkx",
|
||||
scopes = listOf("mail-w"),
|
||||
authorizationEndpoint = "https://api.login.yahoo.com/oauth2/request_auth",
|
||||
tokenEndpoint = "https://api.login.yahoo.com/oauth2/get_token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
package net.thunderbird.android.dev
|
||||
|
||||
import app.k9mail.autodiscovery.api.AutoDiscovery
|
||||
import app.k9mail.autodiscovery.demo.DemoAutoDiscovery
|
||||
import com.fsck.k9.backend.BackendFactory
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.core.qualifier.named
|
||||
|
||||
fun Module.developmentModuleAdditions() {
|
||||
single { DemoBackendFactory(backendStorageFactory = get()) }
|
||||
single<Map<String, BackendFactory>>(named("developmentBackends")) {
|
||||
mapOf("demo" to get<DemoBackendFactory>())
|
||||
}
|
||||
single<List<AutoDiscovery>>(named("extraAutoDiscoveries")) {
|
||||
listOf(DemoAutoDiscovery())
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package net.thunderbird.android.dev
|
||||
|
||||
import app.k9mail.backend.demo.DemoBackend
|
||||
import com.fsck.k9.backend.BackendFactory
|
||||
import com.fsck.k9.backend.api.Backend
|
||||
import com.fsck.k9.mailstore.K9BackendStorageFactory
|
||||
import net.thunderbird.core.android.account.LegacyAccount
|
||||
|
||||
class DemoBackendFactory(private val backendStorageFactory: K9BackendStorageFactory) : BackendFactory {
|
||||
override fun createBackend(account: LegacyAccount): Backend {
|
||||
val backendStorage = backendStorageFactory.createBackendStorage(account)
|
||||
return DemoBackend(backendStorage)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package net.thunderbird.android.featureflag
|
||||
|
||||
import net.thunderbird.core.featureflag.FeatureFlag
|
||||
import net.thunderbird.core.featureflag.FeatureFlagFactory
|
||||
import net.thunderbird.core.featureflag.FeatureFlagKey
|
||||
import net.thunderbird.core.featureflag.toFeatureFlagKey
|
||||
|
||||
/**
|
||||
* Feature flags for Thunderbird Debug
|
||||
*/
|
||||
class TbFeatureFlagFactory : FeatureFlagFactory {
|
||||
override fun createFeatureCatalog(): List<FeatureFlag> {
|
||||
return listOf(
|
||||
FeatureFlag("archive_marks_as_read".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("new_account_settings".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("disable_font_size_config".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("email_notification_default".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("enable_dropdown_drawer".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("enable_dropdown_drawer_ui".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag(FeatureFlagKey.DisplayInAppNotifications, enabled = true),
|
||||
FeatureFlag(FeatureFlagKey.UseNotificationSenderForSystemNotifications, enabled = true),
|
||||
)
|
||||
}
|
||||
}
|
||||
343
app-thunderbird/src/debug/res/drawable/ic_app_logo.xml
Normal file
|
|
@ -0,0 +1,343 @@
|
|||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="72dp"
|
||||
android:height="72dp"
|
||||
android:viewportWidth="1024"
|
||||
android:viewportHeight="1024"
|
||||
>
|
||||
<path
|
||||
android:fillColor="#008787"
|
||||
android:pathData="M866.3,634H493.4C482.5,634 473.6,642.9 473.6,653.8V713.5C473.6,801.4 544.8,872.6 632.6,872.6H839C904.8,872.6 958.3,819.2 958.3,753.3V701.1C958.3,671.2 928.4,634 866.3,634Z"
|
||||
/>
|
||||
<path android:pathData="M439.5,260.2L439.6,260.2C466.3,167 582.5,121.5 700.9,121.5C782.7,121.5 856.2,147.4 906.5,188.5C875.3,190.1 845.7,196.2 818.5,206C859.2,221.1 894.2,244.4 920.1,273.2C902.9,270.2 885,268.7 866.8,268.7C864.8,268.7 862.8,268.7 860.9,268.7C907.9,337 935.5,419.7 935.5,508.9C935.5,742.8 745.9,932.4 512,932.4C281.7,932.4 88.5,739.5 88.5,508.9C88.5,472.4 93.3,434.8 102.7,399.5C105.2,392.1 108.6,385 113.2,382.4C118.9,379.2 124.1,388.9 125,392C131.2,415.3 139.5,437.9 149.8,459.5C148.9,411.1 169.6,367.1 198,329C217,303.6 234.5,280 242.6,212.1C243.2,207.6 247.5,204.3 251.9,205.7C313.5,225.9 346.5,328.6 341.4,414.4C375.4,419.3 375.3,383.7 375.3,383.7C364.4,350.2 371.6,288 439.4,260.2L439.5,260.2Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="832.5"
|
||||
android:endY="817.9"
|
||||
android:startX="396.6"
|
||||
android:startY="288.4"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFF53DB8"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF590DF2"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillAlpha="0.9"
|
||||
android:pathData="M921.6,401C931.9,633.9 740.5,834.8 507,834.8C288.4,834.8 109.3,665.8 93.1,451.4C90.2,471.2 88.7,491.4 88.5,512C90.2,741.5 282.9,932.4 512,932.4C745.9,932.4 935.5,742.8 935.5,508.9C935.5,471.6 930.7,435.5 921.6,401Z"
|
||||
android:strokeAlpha="0.9"
|
||||
>
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="234.4"
|
||||
android:centerY="452.7"
|
||||
android:gradientRadius="358.1"
|
||||
android:type="radial"
|
||||
>
|
||||
<item
|
||||
android:color="#000B4186"
|
||||
android:offset="0.5"
|
||||
/>
|
||||
<item
|
||||
android:color="#720B4186"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M502.2,291.3C497.6,283.2 476.5,271.3 467.3,269.2C502.2,157.6 679.7,123.3 788.4,143C833.6,151.3 889.9,175.9 907,188.7C856.7,147.6 783.2,121.7 701.4,121.7C583,121.7 466.7,167.2 440.1,260.4L440,260.4L439.9,260.4C372.1,288.2 364.9,350.5 375.8,383.9C386.2,344 436,295 502.2,291.3Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="442.3"
|
||||
android:endY="231"
|
||||
android:startX="587.8"
|
||||
android:startY="332.8"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#00D13AEF"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#E5F9D286"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M624.7,214C529.6,232.7 498.5,238.8 466.7,269.1C502.4,174.4 593.7,155.2 702.5,198.4C672.5,204.6 646.9,209.6 624.7,214Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="616.4"
|
||||
android:endY="164.5"
|
||||
android:startX="307.2"
|
||||
android:startY="473.7"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FF450FB0"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#00450FB0"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M111.5,386.6C85.5,493 105.6,618 223.7,723C188.5,684.6 145.6,542.6 240.3,441.2C246.7,434.4 257.6,439.4 258,448.8C265.8,659.5 435.8,788.2 631.9,764.1C571.1,760.7 370.3,690.4 519.7,662.5C597.8,648 720.3,625.2 720.3,515.3C720.3,337.1 582.5,285 499,292.8C441.8,298.1 391,334.4 375.3,383.7C381.3,403.1 357.4,416.8 341.4,414.5C346.5,328.6 313.5,225.9 251.9,205.7C247.5,204.3 243.2,207.6 242.6,212.1C234.5,280 217,303.6 198,329C169.6,367.1 148.9,411.1 149.8,459.5C139.5,437.9 131.2,415.3 125,392C124.3,389.4 120.5,382.1 115.9,381.8C113.4,381.6 112.1,384 111.5,386.6Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="352.3"
|
||||
android:centerY="739.6"
|
||||
android:gradientRadius="558.7"
|
||||
android:type="radial"
|
||||
>
|
||||
<item
|
||||
android:color="#FF650877"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#00340B86"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M467.2,673.3C582.2,766.7 813.5,696.7 813.5,469.6C720.1,611.2 601.2,708.8 467.2,673.3Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="630.1"
|
||||
android:endY="762.5"
|
||||
android:startX="778.1"
|
||||
android:startY="576.8"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#00D647E2"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#A3E7BB65"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M240.3,441.2C242.7,438.6 245.8,437.7 248.7,438.1C164,541.5 232.3,723.1 279.3,767.7C281.9,775.1 234.8,736.5 228.3,727.5C192.6,697.2 141.4,547.1 240.3,441.2Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="241.4"
|
||||
android:endY="712.5"
|
||||
android:startX="173.2"
|
||||
android:startY="429.1"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFF9BF86"
|
||||
android:offset="0.1"
|
||||
/>
|
||||
<item
|
||||
android:color="#00D63AEF"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M512,681.9C627,681.9 720.3,605.8 720.3,511.9C720.3,418.1 627,342 512,342C413.9,342 303.7,405.8 303.7,514.4C303.8,682.2 481,778.7 632.1,764.1C620.8,762.8 550,759 502.1,704.9C497.8,700 490.3,691.5 493.7,686C497.1,680.4 506.5,681.9 512,681.9Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="512"
|
||||
android:endY="762.4"
|
||||
android:startX="512"
|
||||
android:startY="404.2"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFFFFFFF"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FFBEE1FE"
|
||||
android:offset="0.9"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF96CEFD"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillAlpha="0.7"
|
||||
android:pathData="M512,681.9C627,681.9 720.3,605.8 720.3,511.9C720.3,483.3 711.6,456.3 696.2,432.6L530.9,582.7C519.4,593.2 499.9,593.2 488.4,582.7L326.2,435.4C312,458.1 303.7,484.5 303.7,514.4C303.8,682.2 481,778.7 632.1,764.1C631.5,764 630.6,763.9 629.5,763.8L629.4,763.8C612.3,762.2 547.1,755.8 502.1,704.9C497.8,700 490.3,691.5 493.7,686C496.6,681.3 503.6,681.6 509.1,681.8C510.1,681.8 511.1,681.9 512,681.9Z"
|
||||
android:strokeAlpha="0.7"
|
||||
>
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="518.7"
|
||||
android:endY="756.9"
|
||||
android:startX="518.7"
|
||||
android:startY="606.9"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFBCE0FD"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF88CCFC"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#B5DBF9"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M446.7,602.8C408.5,561.7 326.5,435.5 326.5,435.5L328,433L487.9,568.5C498.7,576.3 514,576.3 524.7,568.3L680.6,435.2H696.5C696.5,435.2 612.2,555.6 568.7,602.8C525.1,650 484.8,644 446.7,602.8Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#A8D3F6"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M463.9,598.6C433.3,566.7 326.3,435.1 326.3,435.1L331.7,432L492.3,568.3C503.1,576.2 518.4,576.1 529.1,568.1L685,435.1H697.1C697.1,435.1 588.8,564 554.7,598.1C520.7,632.2 494.6,630.5 463.9,598.6Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#93C5ED"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M463.9,593.7C433.3,561.8 335.9,444.7 335.9,444.7L348.5,456.1L492.3,563.5C503.1,571.3 518.4,571.2 529.1,563.3L670.1,456.2L682.6,449C682.6,449 588.8,559.2 554.7,593.3C520.7,627.4 494.6,625.7 463.9,593.7Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#7DB6E4"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M463.7,583.7C433,551.8 341.1,445.7 341.1,445.7L348.2,446L492,553.5C502.8,561.3 518.2,561.2 528.8,553.3L669.9,446.2L677.4,445.6C677.4,445.6 588.5,549.1 554.4,583.2C520.4,617.4 494.3,615.6 463.7,583.7Z"
|
||||
/>
|
||||
<path android:pathData="M532.4,592.4L697.4,434.9C662.5,381 598.1,342 512.1,342C441,342 363.4,375.5 326.2,435.3L486,592.4C497.5,602.9 520.9,602.9 532.4,592.4Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="511.8"
|
||||
android:endY="771.6"
|
||||
android:startX="511.3"
|
||||
android:startY="378.5"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FFFFFFFF"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FFBEE1FE"
|
||||
android:offset="0.9"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF96CEFD"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillAlpha="0.6"
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M697.6,434.7L533,592.2C518.4,602.6 502.8,603.3 487.5,593.9L326,435.3C330.6,427.9 335.8,420.9 341.5,414.2C347.3,419.7 353,425 358.5,430.1C400.9,469.8 435.2,501.9 483.5,543.2C505.3,561.8 512.1,561.4 533.4,543.2C588.7,496 629.1,460.3 681.7,413.4C687.6,420.1 692.9,427.3 697.6,434.7Z"
|
||||
android:strokeAlpha="0.6"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M541.2,257C563.5,249.9 561.6,227.9 561.6,227.9C561.6,227.9 550.4,214.8 528.3,222C507.7,228.8 504.4,243.6 504.4,243.6C504.4,243.6 515.7,265 541.2,257Z"
|
||||
/>
|
||||
<path
|
||||
android:fillAlpha="0.2"
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M891,698.4C821.5,837.2 677.9,932.4 512.1,932.4C483.8,932.4 456,929.5 429,924V859.4C429,770.5 497.3,698.4 581.5,698.4H891Z"
|
||||
android:strokeAlpha="0.2"
|
||||
/>
|
||||
<path
|
||||
android:fillAlpha="0.9"
|
||||
android:pathData="M866.3,634H493.4C482.5,634 473.6,642.9 473.6,653.8V713.5C473.6,801.4 544.8,872.6 632.6,872.6H839C904.8,872.6 958.3,819.2 958.3,753.3V701.1C958.3,671.2 928.4,634 866.3,634Z"
|
||||
android:strokeAlpha="0.9"
|
||||
>
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="727.4"
|
||||
android:endY="740.7"
|
||||
android:startX="856.4"
|
||||
android:startY="862.9"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#7F054096"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#700F3D9C"
|
||||
android:offset="0.1"
|
||||
/>
|
||||
<item
|
||||
android:color="#3F2F35B1"
|
||||
android:offset="0.3"
|
||||
/>
|
||||
<item
|
||||
android:color="#1C462FBF"
|
||||
android:offset="0.5"
|
||||
/>
|
||||
<item
|
||||
android:color="#07542BC8"
|
||||
android:offset="0.7"
|
||||
/>
|
||||
<item
|
||||
android:color="#00592ACB"
|
||||
android:offset="0.9"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M938.4,720.9H595.6C514.5,720.9 448.7,786.7 448.7,867.8V939.7C448.7,950.7 457.6,959.6 468.6,959.6H811.4C892.5,959.6 958.3,893.8 958.3,812.7V701.1C958.3,712.1 949.4,720.9 938.4,720.9Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="970.6"
|
||||
android:endY="940"
|
||||
android:startX="504.7"
|
||||
android:startY="742.8"
|
||||
android:type="linear"
|
||||
>
|
||||
<item
|
||||
android:color="#FF54FFBD"
|
||||
android:offset="0"
|
||||
/>
|
||||
<item
|
||||
android:color="#FF00DDFF"
|
||||
android:offset="1"
|
||||
/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M526.1,887H493.1V793.9H526.4C535.7,793.9 543.8,795.8 550.5,799.5C557.3,803.2 562.5,808.5 566.1,815.5C569.8,822.4 571.6,830.7 571.6,840.4C571.6,850.1 569.8,858.4 566.1,865.4C562.5,872.3 557.3,877.7 550.5,881.4C543.7,885.1 535.5,887 526.1,887ZM512.8,870.1H525.3C531.1,870.1 536,869.1 540,867C544,865 547,861.7 549,857.4C551,853 552,847.3 552,840.4C552,833.5 551,827.9 549,823.5C547,819.1 544,815.9 540,813.9C536,811.8 531.1,810.8 525.3,810.8H512.8V870.1Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M586.2,887V793.9H648.9V810.1H605.9V832.3H645.7V848.5H605.9V870.8H649.1V887H586.2Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M664.6,887V793.9H701.9C708.7,793.9 714.4,794.9 719,797C723.6,799 727,801.8 729.3,805.4C731.6,809 732.8,813.1 732.8,817.8C732.8,821.4 732,824.6 730.6,827.4C729.1,830.1 727.1,832.3 724.6,834.1C722.1,835.8 719.2,837 716,837.8V838.7C719.5,838.8 722.8,839.8 725.9,841.7C729,843.5 731.6,846.1 733.5,849.5C735.4,852.8 736.4,856.7 736.4,861.3C736.4,866.2 735.2,870.6 732.7,874.5C730.3,878.3 726.7,881.4 722,883.6C717.2,885.9 711.3,887 704.4,887H664.6ZM684.3,870.9H700.3C705.8,870.9 709.8,869.9 712.3,867.8C714.8,865.7 716.1,862.8 716.1,859.3C716.1,856.7 715.5,854.5 714.2,852.5C713,850.5 711.2,849 708.9,847.9C706.6,846.7 703.9,846.2 700.8,846.2H684.3V870.9ZM684.3,832.9H698.9C701.6,832.9 704,832.4 706,831.5C708.2,830.5 709.8,829.1 711,827.4C712.3,825.6 712.9,823.5 712.9,821C712.9,817.7 711.7,815 709.3,812.9C707,810.8 703.6,809.8 699.2,809.8H684.3V832.9Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M806.7,793.9H826.4V854.4C826.4,861.2 824.8,867.1 821.5,872.2C818.3,877.3 813.8,881.2 808,884.1C802.2,886.9 795.5,888.3 787.8,888.3C780.1,888.3 773.3,886.9 767.5,884.1C761.7,881.2 757.2,877.3 754,872.2C750.8,867.1 749.2,861.2 749.2,854.4V793.9H768.9V852.7C768.9,856.2 769.7,859.4 771.2,862.1C772.8,864.9 775,867.1 777.9,868.6C780.7,870.2 784,871 787.8,871C791.6,871 794.9,870.2 797.8,868.6C800.6,867.1 802.8,864.9 804.4,862.1C805.9,859.4 806.7,856.2 806.7,852.7V793.9Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M904.3,824C903.7,821.8 902.8,819.8 901.6,818.1C900.5,816.4 899.1,815 897.4,813.8C895.8,812.6 893.9,811.6 891.8,811C889.7,810.4 887.4,810 884.8,810C880.1,810 875.9,811.2 872.3,813.6C868.7,816 865.9,819.4 863.9,823.9C861.9,828.4 860.9,833.9 860.9,840.4C860.9,846.8 861.9,852.4 863.9,856.9C865.8,861.5 868.6,864.9 872.2,867.3C875.8,869.7 880.1,870.9 885,870.9C889.5,870.9 893.3,870.1 896.4,868.5C899.6,866.9 902,864.6 903.7,861.7C905.4,858.8 906.2,855.4 906.2,851.4L910.2,852H886.2V837.2H925.2V848.9C925.2,857.1 923.5,864.1 920,870C916.5,875.8 911.8,880.4 905.7,883.5C899.7,886.7 892.7,888.3 884.9,888.3C876.2,888.3 868.5,886.3 861.9,882.5C855.3,878.6 850.2,873.1 846.5,866C842.8,858.8 841,850.4 841,840.5C841,833 842,826.3 844.2,820.4C846.4,814.4 849.5,809.4 853.5,805.3C857.5,801.2 862.1,798 867.4,795.9C872.6,793.7 878.3,792.6 884.5,792.6C889.8,792.6 894.7,793.4 899.2,795C903.8,796.5 907.8,798.6 911.3,801.4C914.9,804.2 917.8,807.5 920,811.4C922.2,815.2 923.7,819.4 924.3,824H904.3Z"
|
||||
/>
|
||||
</vector>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="72dp"
|
||||
android:height="72dp"
|
||||
android:viewportWidth="1024"
|
||||
android:viewportHeight="1024"
|
||||
>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M595.6,720.9H938.4C949.4,720.9 958.3,712 958.3,701.1V812.7C958.3,893.8 892.5,959.6 811.4,959.6H468.6C457.6,959.6 448.7,950.7 448.7,939.7V867.8C448.7,786.7 514.5,720.9 595.6,720.9ZM504.6,887H535.5C544.4,887 552,885.3 558.4,881.8C564.8,878.3 569.7,873.3 573.1,866.7C576.5,860.2 578.2,852.4 578.2,843.3C578.2,834.2 576.5,826.4 573.1,819.9C569.7,813.4 564.8,808.4 558.4,805C552.1,801.5 544.6,799.7 535.8,799.7H504.6V887ZM534.8,871.2H523V815.5H534.8C540.3,815.5 544.8,816.5 548.6,818.4C552.3,820.4 555.1,823.4 557,827.5C558.9,831.6 559.8,836.8 559.8,843.3C559.8,849.8 558.9,855.1 557,859.2C555.1,863.3 552.3,866.3 548.5,868.3C544.8,870.2 540.2,871.2 534.8,871.2ZM591.9,799.7V887H650.9V871.8H610.3V850.9H647.7V835.7H610.3V814.9H650.7V799.7H591.9ZM665.4,799.7V887H702.7C709.2,887 714.7,885.9 719.1,883.8C723.6,881.7 727,878.9 729.2,875.3C731.5,871.6 732.7,867.5 732.7,862.9C732.7,858.6 731.8,854.9 730,851.8C728.2,848.7 725.8,846.2 722.9,844.5C720,842.8 716.8,841.8 713.5,841.7V840.8C716.6,840.2 719.3,839 721.6,837.4C724,835.8 725.9,833.6 727.2,831.1C728.6,828.5 729.3,825.5 729.3,822.1C729.3,817.7 728.2,813.9 726,810.5C723.9,807.1 720.7,804.5 716.4,802.6C712.1,800.7 706.7,799.7 700.3,799.7H665.4ZM698.9,871.9H683.8V848.7H699.3C702.2,848.7 704.8,849.3 706.9,850.3C709.1,851.4 710.7,852.8 711.9,854.7C713.1,856.5 713.6,858.6 713.6,861C713.6,864.3 712.5,867 710.1,869C707.8,870.9 704,871.9 698.9,871.9ZM697.5,836.2H683.8V814.6H697.8C701.9,814.6 705.1,815.6 707.3,817.5C709.5,819.5 710.7,822 710.7,825.2C710.7,827.5 710.1,829.4 708.9,831.1C707.8,832.7 706.2,834 704.2,834.9C702.3,835.8 700,836.2 697.5,836.2ZM817.1,799.7H798.6V854.8C798.6,858.2 797.9,861.1 796.4,863.7C794.9,866.3 792.9,868.3 790.2,869.8C787.6,871.3 784.5,872 780.9,872C777.3,872 774.2,871.3 771.5,869.8C768.9,868.3 766.8,866.3 765.3,863.7C763.9,861.1 763.2,858.2 763.2,854.8V799.7H744.7V856.4C744.7,862.8 746.2,868.3 749.2,873.1C752.2,877.9 756.5,881.6 761.9,884.3C767.3,886.9 773.6,888.2 780.9,888.2C788.1,888.2 794.4,886.9 799.8,884.3C805.3,881.6 809.5,877.9 812.5,873.1C815.5,868.3 817.1,862.8 817.1,856.4V799.7ZM887.6,822.4C888.7,824 889.5,825.9 890.1,827.9H908.9C908.3,823.6 906.9,819.7 904.8,816.1C902.7,812.5 900,809.4 896.7,806.8C893.4,804.1 889.6,802.1 885.3,800.7C881.1,799.3 876.5,798.5 871.5,798.5C865.8,798.5 860.4,799.5 855.5,801.6C850.5,803.6 846.2,806.5 842.5,810.4C838.7,814.2 835.8,819 833.8,824.5C831.7,830.1 830.7,836.4 830.7,843.4C830.7,852.7 832.4,860.6 835.9,867.3C839.3,874 844.2,879.1 850.4,882.8C856.5,886.4 863.7,888.2 871.9,888.2C879.2,888.2 885.8,886.7 891.4,883.8C897.1,880.8 901.6,876.5 904.8,871.1C908.1,865.6 909.7,859 909.7,851.3V840.3H873.2V854.2H891.9C891.8,857.7 891,860.7 889.5,863.3C888,866 885.7,868.2 882.7,869.7C879.7,871.1 876.2,871.9 872,871.9C867.4,871.9 863.4,870.8 860,868.5C856.6,866.3 854,863.1 852.2,858.8C850.3,854.5 849.4,849.4 849.4,843.3C849.4,837.2 850.4,832.1 852.2,827.9C854.1,823.6 856.7,820.4 860.1,818.2C863.4,816 867.4,814.9 871.8,814.9C874.2,814.9 876.4,815.2 878.3,815.8C880.3,816.3 882.1,817.2 883.6,818.3C885.2,819.5 886.5,820.8 887.6,822.4Z"
|
||||
/>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M440,249.7L440.1,249.7C466.8,156.5 583,111 701.4,111C783.2,111 856.7,136.9 907,178C875.8,179.6 846.2,185.7 819,195.5C859.7,210.7 894.7,233.9 920.6,262.7C903.4,259.7 885.5,258.2 867.3,258.2C865.3,258.2 863.3,258.2 861.4,258.2C908.4,326.5 936,409.2 936,498.4C936,575 915.6,646.9 880,708.9H595.6C573.7,708.9 552.7,713.4 533.7,721.4C522.9,714.2 512.3,705.3 502.6,694.4C498.3,689.5 490.8,681 494.2,675.5C497.1,670.8 504.1,671.1 509.6,671.3L509.6,671.3C510.6,671.4 511.6,671.4 512.5,671.4C627.5,671.4 720.8,595.3 720.8,501.4C720.8,407.6 627.5,331.5 512.5,331.5C465.1,331.5 415,346.4 375.8,374C375.8,373.5 375.8,373.2 375.8,373.2C364.9,339.8 372.1,277.6 439.9,249.7L440,249.7ZM501.4,739.9C394.7,707.3 304.3,623.8 304.2,503.9C304.2,464.4 318.8,430.8 342.1,404L342,404L341.9,404C347,318.1 314,215.4 252.4,195.2C248,193.8 243.7,197.1 243.1,201.6C235,269.6 217.5,293.1 198.5,318.5C170.1,356.6 149.4,400.6 150.3,449C140,427.4 131.7,404.9 125.5,381.6C124.6,378.4 119.4,368.7 113.7,372C109.1,374.6 105.7,381.7 103.2,389.1C93.8,424.3 89,462 89,498.4C89,703.2 241.3,878.2 436.7,914.9V867.8C436.7,815.3 462.2,768.8 501.4,739.9ZM541.7,246.5C564,239.5 562.1,217.4 562.1,217.4C562.1,217.4 550.9,204.3 528.8,211.6C508.2,218.4 504.9,233.1 504.9,233.1C504.9,233.1 516.2,254.5 541.7,246.5ZM341.6,435.3C341.6,435.3 433.5,541.3 464.2,573.2C494.8,605.2 520.9,606.9 555,572.8C589,538.7 677.9,435.1 677.9,435.1L670.4,435.7L529.3,542.8C518.7,550.7 503.3,550.8 492.5,543L348.7,435.6L341.6,435.3Z"
|
||||
/>
|
||||
<path
|
||||
android:fillAlpha="0.9"
|
||||
android:fillColor="#000000"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M893.8,708.9C904.8,689.2 914.2,668.4 922,646.9C939.1,656.4 950.1,670 955.1,683.7C956.3,687 955.5,691.5 954,695C948.5,708 942.7,708.9 938.4,708.9H893.8ZM911.1,641.8C902.7,665.2 892.3,687.7 880,708.9L809,708.9V635.4L866.3,634C883.8,634 898.7,636.9 911.1,641.8ZM809,720.9V767H957.5C958,762.5 958.3,757.9 958.3,753.3V701.2C958.2,709.3 953.3,716.3 946.3,719.3C943.8,720.4 941.2,720.9 938.4,720.9L887,720.9L809,720.9Z"
|
||||
android:strokeAlpha="0.9"
|
||||
/>
|
||||
</vector>
|
||||
BIN
app-thunderbird/src/debug/res/mipmap-hdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
app-thunderbird/src/debug/res/mipmap-mdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
app-thunderbird/src/debug/res/mipmap-xhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
app-thunderbird/src/debug/res/mipmap-xxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
app-thunderbird/src/debug/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
7
app-thunderbird/src/debug/res/raw/changelog_master.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="changelog_style.xsl"?>
|
||||
<changelog>
|
||||
<release version="Debug" versioncode="1">
|
||||
<change>Debug snapshot of current development at github.com/thunderbird/thunderbird-android</change>
|
||||
</release>
|
||||
</changelog>
|
||||
4
app-thunderbird/src/debug/res/values/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name" translatable="false">Thunderbird Debug</string>
|
||||
</resources>
|
||||
83
app-thunderbird/src/main/AndroidManifest.xml
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:installLocation="auto"
|
||||
>
|
||||
|
||||
<application
|
||||
android:name=".ThunderbirdApp"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/Theme.Thunderbird.Startup"
|
||||
>
|
||||
|
||||
<activity
|
||||
android:name="com.fsck.k9.ui.settings.account.OpenPgpAppSelectDialog"
|
||||
android:configChanges="locale"
|
||||
android:theme="@style/Theme.Thunderbird.DayNight.Dialog.Translucent"
|
||||
/>
|
||||
|
||||
<activity
|
||||
android:name="com.fsck.k9.ui.notification.DeleteConfirmationActivity"
|
||||
android:excludeFromRecents="true"
|
||||
android:launchMode="singleTop"
|
||||
android:taskAffinity=""
|
||||
android:theme="@style/Theme.Thunderbird.DayNight.Dialog.Translucent"
|
||||
/>
|
||||
|
||||
<provider
|
||||
android:name="androidx.startup.InitializationProvider"
|
||||
android:authorities="${applicationId}.androidx-startup"
|
||||
android:exported="false"
|
||||
tools:node="merge"
|
||||
>
|
||||
|
||||
<!-- We're using on-demand initialization for WorkManager -->
|
||||
<meta-data
|
||||
android:name="androidx.work.WorkManagerInitializer"
|
||||
android:value="androidx.startup"
|
||||
tools:node="remove"
|
||||
/>
|
||||
|
||||
</provider>
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<!-- IMPORTANT: The component name must be `net.thunderbird.android.widget.provider.MessageListWidgetProvider` and can't be changed. -->
|
||||
<receiver
|
||||
android:name="net.thunderbird.android.widget.provider.MessageListWidgetProvider"
|
||||
android:icon="@drawable/message_list_widget_preview"
|
||||
android:label="@string/message_list_widget_label"
|
||||
android:enabled="@bool/home_screen_widgets_enabled"
|
||||
android:exported="false"
|
||||
>
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/message_list_widget_info"
|
||||
/>
|
||||
</receiver>
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<!-- IMPORTANT: The component name and can't be changed and always must be:
|
||||
`net.thunderbird.android.widget.provider.UnreadWidgetProvider`
|
||||
-->
|
||||
<receiver
|
||||
android:name="net.thunderbird.android.widget.provider.UnreadWidgetProvider"
|
||||
android:label="@string/unread_widget_label"
|
||||
android:enabled="@bool/home_screen_widgets_enabled"
|
||||
android:exported="false"
|
||||
>
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/unread_widget_info"
|
||||
/>
|
||||
</receiver>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package net.thunderbird.android
|
||||
|
||||
import app.k9mail.feature.telemetry.api.TelemetryManager
|
||||
import com.fsck.k9.K9
|
||||
import net.thunderbird.app.common.BaseApplication
|
||||
import org.koin.android.ext.android.inject
|
||||
import org.koin.core.module.Module
|
||||
|
||||
class ThunderbirdApp : BaseApplication() {
|
||||
private val telemetryManager: TelemetryManager by inject()
|
||||
|
||||
override fun provideAppModule(): Module = appModule
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
|
||||
initializeTelemetry()
|
||||
}
|
||||
|
||||
private fun initializeTelemetry() {
|
||||
telemetryManager.init(
|
||||
uploadEnabled = K9.isTelemetryEnabled,
|
||||
releaseChannel = BuildConfig.GLEAN_RELEASE_CHANNEL,
|
||||
versionCode = BuildConfig.VERSION_CODE,
|
||||
versionName = BuildConfig.VERSION_NAME,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package net.thunderbird.android
|
||||
|
||||
import app.k9mail.feature.widget.shortcut.LauncherShortcutActivity
|
||||
import com.fsck.k9.AppConfig
|
||||
import com.fsck.k9.DefaultAppConfig
|
||||
import com.fsck.k9.activity.MessageCompose
|
||||
import net.thunderbird.android.auth.TbOAuthConfigurationFactory
|
||||
import net.thunderbird.android.dev.developmentModuleAdditions
|
||||
import net.thunderbird.android.feature.featureModule
|
||||
import net.thunderbird.android.featureflag.TbFeatureFlagFactory
|
||||
import net.thunderbird.android.provider.providerModule
|
||||
import net.thunderbird.android.widget.provider.MessageListWidgetProvider
|
||||
import net.thunderbird.android.widget.provider.UnreadWidgetProvider
|
||||
import net.thunderbird.android.widget.widgetModule
|
||||
import net.thunderbird.app.common.appCommonModule
|
||||
import net.thunderbird.core.common.oauth.OAuthConfigurationFactory
|
||||
import net.thunderbird.core.featureflag.FeatureFlagFactory
|
||||
import org.koin.core.qualifier.named
|
||||
import org.koin.dsl.module
|
||||
|
||||
val appModule = module {
|
||||
includes(appCommonModule)
|
||||
|
||||
includes(widgetModule)
|
||||
includes(featureModule)
|
||||
includes(providerModule)
|
||||
|
||||
single(named("ClientInfoAppName")) { BuildConfig.CLIENT_INFO_APP_NAME }
|
||||
single(named("ClientInfoAppVersion")) { BuildConfig.VERSION_NAME }
|
||||
single<AppConfig> { appConfig }
|
||||
single<OAuthConfigurationFactory> { TbOAuthConfigurationFactory() }
|
||||
single<FeatureFlagFactory> { TbFeatureFlagFactory() }
|
||||
|
||||
developmentModuleAdditions()
|
||||
}
|
||||
|
||||
val appConfig = DefaultAppConfig(
|
||||
componentsToDisable = listOf(
|
||||
MessageCompose::class.java,
|
||||
LauncherShortcutActivity::class.java,
|
||||
UnreadWidgetProvider::class.java,
|
||||
MessageListWidgetProvider::class.java,
|
||||
),
|
||||
)
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package net.thunderbird.android.feature
|
||||
|
||||
import app.k9mail.feature.funding.api.FundingSettings
|
||||
import app.k9mail.feature.funding.featureFundingModule
|
||||
import app.k9mail.feature.migration.launcher.featureMigrationModule
|
||||
import app.k9mail.feature.onboarding.migration.onboardingMigrationModule
|
||||
import app.k9mail.feature.telemetry.telemetryModule
|
||||
import net.thunderbird.feature.account.settings.featureAccountSettingsModule
|
||||
import net.thunderbird.feature.mail.message.list.featureMessageListModule
|
||||
import org.koin.dsl.module
|
||||
|
||||
internal val featureModule = module {
|
||||
includes(featureAccountSettingsModule)
|
||||
includes(telemetryModule)
|
||||
includes(featureFundingModule)
|
||||
includes(onboardingMigrationModule)
|
||||
includes(featureMigrationModule)
|
||||
includes(featureMessageListModule)
|
||||
|
||||
single<FundingSettings> { TbFundingSettings() }
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package net.thunderbird.android.feature
|
||||
|
||||
import app.k9mail.feature.funding.api.FundingSettings
|
||||
import com.fsck.k9.K9
|
||||
|
||||
internal class TbFundingSettings : FundingSettings {
|
||||
override fun getReminderReferenceTimestamp(): Long = K9.fundingReminderReferenceTimestamp
|
||||
|
||||
override fun setReminderReferenceTimestamp(timestamp: Long) {
|
||||
K9.fundingReminderReferenceTimestamp = timestamp
|
||||
K9.saveSettingsAsync()
|
||||
}
|
||||
|
||||
override fun getReminderShownTimestamp() = K9.fundingReminderShownTimestamp
|
||||
|
||||
override fun setReminderShownTimestamp(timestamp: Long) {
|
||||
K9.fundingReminderShownTimestamp = timestamp
|
||||
K9.saveSettingsAsync()
|
||||
}
|
||||
|
||||
override fun getActivityCounterInMillis(): Long = K9.fundingActivityCounterInMillis
|
||||
|
||||
override fun setActivityCounterInMillis(activeTime: Long) {
|
||||
K9.fundingActivityCounterInMillis = activeTime
|
||||
K9.saveSettingsAsync()
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package net.thunderbird.android.provider
|
||||
|
||||
import com.fsck.k9.preferences.FilePrefixProvider
|
||||
import net.thunderbird.core.common.provider.AppNameProvider
|
||||
import net.thunderbird.core.common.provider.BrandNameProvider
|
||||
import net.thunderbird.core.ui.theme.api.FeatureThemeProvider
|
||||
import net.thunderbird.core.ui.theme.api.ThemeProvider
|
||||
import org.koin.android.ext.koin.androidContext
|
||||
import org.koin.dsl.binds
|
||||
import org.koin.dsl.module
|
||||
|
||||
internal val providerModule = module {
|
||||
single {
|
||||
TbAppNameProvider(androidContext())
|
||||
} binds arrayOf(AppNameProvider::class, BrandNameProvider::class, FilePrefixProvider::class)
|
||||
|
||||
single<ThemeProvider> { TbThemeProvider() }
|
||||
|
||||
single<FeatureThemeProvider> { TbFeatureThemeProvider() }
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package net.thunderbird.android.provider
|
||||
|
||||
import android.content.Context
|
||||
import com.fsck.k9.preferences.FilePrefixProvider
|
||||
import net.thunderbird.android.R
|
||||
import net.thunderbird.core.common.provider.AppNameProvider
|
||||
import net.thunderbird.core.common.provider.BrandNameProvider
|
||||
|
||||
internal class TbAppNameProvider(
|
||||
context: Context,
|
||||
) : AppNameProvider, BrandNameProvider, FilePrefixProvider {
|
||||
override val appName: String by lazy {
|
||||
context.getString(R.string.app_name)
|
||||
}
|
||||
|
||||
override val brandName: String by lazy {
|
||||
context.getString(R.string.brand_name)
|
||||
}
|
||||
|
||||
override val filePrefix: String = "thunderbird"
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package net.thunderbird.android.provider
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import app.k9mail.core.ui.compose.theme2.thunderbird.ThunderbirdTheme2
|
||||
import net.thunderbird.core.ui.theme.api.FeatureThemeProvider
|
||||
|
||||
internal class TbFeatureThemeProvider : FeatureThemeProvider {
|
||||
@Composable
|
||||
override fun WithTheme(content: @Composable () -> Unit) {
|
||||
ThunderbirdTheme2 {
|
||||
content()
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
override fun WithTheme(darkTheme: Boolean, content: @Composable () -> Unit) {
|
||||
ThunderbirdTheme2(darkTheme = darkTheme) {
|
||||
content()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package net.thunderbird.android.provider
|
||||
|
||||
import net.thunderbird.android.R
|
||||
import net.thunderbird.core.ui.theme.api.ThemeProvider
|
||||
|
||||
internal class TbThemeProvider : ThemeProvider {
|
||||
override val appThemeResourceId = R.style.Theme_Thunderbird_DayNight
|
||||
override val appLightThemeResourceId = R.style.Theme_Thunderbird_Light
|
||||
override val appDarkThemeResourceId = R.style.Theme_Thunderbird_Dark
|
||||
override val dialogThemeResourceId = R.style.Theme_Thunderbird_DayNight_Dialog
|
||||
override val translucentDialogThemeResourceId = R.style.Theme_Thunderbird_DayNight_Dialog_Translucent
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package net.thunderbird.android.widget
|
||||
|
||||
import app.k9mail.feature.widget.message.list.MessageListWidgetConfig
|
||||
import net.thunderbird.android.widget.provider.MessageListWidgetProvider
|
||||
|
||||
class TbMessageListWidgetConfig : MessageListWidgetConfig {
|
||||
override val providerClass = MessageListWidgetProvider::class.java
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package net.thunderbird.android.widget
|
||||
|
||||
import app.k9mail.feature.widget.unread.UnreadWidgetConfig
|
||||
import net.thunderbird.android.widget.provider.UnreadWidgetProvider
|
||||
|
||||
class TbUnreadWidgetConfig : UnreadWidgetConfig {
|
||||
override val providerClass = UnreadWidgetProvider::class.java
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package net.thunderbird.android.widget
|
||||
|
||||
import app.k9mail.feature.widget.message.list.MessageListWidgetConfig
|
||||
import app.k9mail.feature.widget.unread.UnreadWidgetConfig
|
||||
import net.thunderbird.feature.widget.message.list.featureWidgetMessageListModule
|
||||
import org.koin.dsl.module
|
||||
|
||||
internal val widgetModule = module {
|
||||
includes(featureWidgetMessageListModule)
|
||||
|
||||
single<MessageListWidgetConfig> { TbMessageListWidgetConfig() }
|
||||
single<UnreadWidgetConfig> { TbUnreadWidgetConfig() }
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package net.thunderbird.android.widget.provider
|
||||
|
||||
import app.k9mail.feature.widget.message.list.BaseMessageListWidgetProvider
|
||||
|
||||
/**
|
||||
* IMPORTANT: The fully qualified name for this class must be
|
||||
* `net.thunderbird.android.widget.provider.MessageListWidgetProvider`.
|
||||
* Otherwise widgets created with older versions of the app using a different name
|
||||
* will stop working or disappear.
|
||||
*/
|
||||
class MessageListWidgetProvider : BaseMessageListWidgetProvider()
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package net.thunderbird.android.widget.provider
|
||||
|
||||
import app.k9mail.feature.widget.unread.BaseUnreadWidgetProvider
|
||||
|
||||
/**
|
||||
* IMPORTANT: The fully qualified name for this class must be
|
||||
* `net.thunderbird.android.widget.provider.UnreadWidgetProvider`.
|
||||
* Otherwise widgets created with older versions of the app using a different name
|
||||
* will stop working or disappear.
|
||||
*/
|
||||
class UnreadWidgetProvider : BaseUnreadWidgetProvider()
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/launcher_icon_background" />
|
||||
<foreground>
|
||||
<inset
|
||||
android:drawable="@drawable/ic_app_logo"
|
||||
android:inset="22%"
|
||||
/>
|
||||
</foreground>
|
||||
<monochrome>
|
||||
<inset
|
||||
android:drawable="@drawable/ic_app_logo_monochrome"
|
||||
android:inset="22%"
|
||||
/>
|
||||
</monochrome>
|
||||
</adaptive-icon>
|
||||
BIN
app-thunderbird/src/main/res/mipmap-hdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
app-thunderbird/src/main/res/mipmap-mdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
app-thunderbird/src/main/res/mipmap-xhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
app-thunderbird/src/main/res/mipmap-xxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
app-thunderbird/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
2
app-thunderbird/src/main/res/values-am/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-ar/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-ast/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-az/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-be/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-bg/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-bn/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-br/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-bs/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-ca/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-co/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-cs/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-cy/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-da/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-de/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-el/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-en-rGB/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-enm/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-eo/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-es/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-et/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-eu/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-fa/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-fi/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-fr/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
2
app-thunderbird/src/main/res/values-fy/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||