Move UI code to ui module

This commit is contained in:
cketti 2018-07-01 13:39:01 +02:00
parent 4384834d19
commit b46594fed4
280 changed files with 288 additions and 156 deletions

View file

@ -5,14 +5,6 @@ apply plugin: 'org.jetbrains.kotlin.android.extensions'
apply from: "${rootProject.projectDir}/gradle/plugins/checkstyle-android.gradle" apply from: "${rootProject.projectDir}/gradle/plugins/checkstyle-android.gradle"
apply from: "${rootProject.projectDir}/gradle/plugins/findbugs-android.gradle" apply from: "${rootProject.projectDir}/gradle/plugins/findbugs-android.gradle"
//noinspection GroovyAssignabilityCheck
configurations.all {
resolutionStrategy {
force "com.android.support:support-annotations:${versions.supportLibrary}"
force "com.android.support:design:${versions.supportLibrary}"
}
}
dependencies { dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${versions.kotlin}" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${versions.kotlin}"
@ -31,31 +23,16 @@ dependencies {
api "com.squareup.okio:okio:${versions.okio}" api "com.squareup.okio:okio:${versions.okio}"
api "commons-io:commons-io:${versions.commonsIo}" api "commons-io:commons-io:${versions.commonsIo}"
api "com.android.support:support-v4:${versions.supportLibrary}"
api "com.android.support:appcompat-v7:${versions.supportLibrary}"
api "com.takisoft.fix:preference-v7:${versions.preferencesFix}"
api "com.takisoft.fix:preference-v7-datetimepicker:${versions.preferencesFix}"
api "com.takisoft.fix:preference-v7-colorpicker:${versions.preferencesFix}"
api "com.takisoft.fix:preference-v7-ringtone:${versions.preferencesFix}"
api "com.android.support:recyclerview-v7:${versions.supportLibrary}"
api "android.arch.lifecycle:extensions:${versions.lifecycleExtensions}"
api "androidx.core:core-ktx:0.3" api "androidx.core:core-ktx:0.3"
api "org.jsoup:jsoup:1.11.2" api "org.jsoup:jsoup:1.11.2"
api "de.cketti.library.changelog:ckchangelog:1.2.1"
api "com.github.bumptech.glide:glide:3.6.1"
api "com.splitwise:tokenautocomplete:2.0.7"
api "de.cketti.safecontentresolver:safe-content-resolver-v14:0.9.0"
api "com.github.amlcurran.showcaseview:library:5.4.1"
api "com.squareup.moshi:moshi:1.2.0" api "com.squareup.moshi:moshi:1.2.0"
api "com.jakewharton.timber:timber:${versions.timber}" api "com.jakewharton.timber:timber:${versions.timber}"
api "net.jcip:jcip-annotations:1.0" api "net.jcip:jcip-annotations:1.0"
api "org.apache.james:apache-mime4j-core:0.8.1" api "org.apache.james:apache-mime4j-core:0.8.1"
api "com.xwray:groupie:2.1.0"
api "com.xwray:groupie-kotlin-android-extensions:2.1.0"
api "org.jetbrains.anko:anko-coroutines:0.10.4" api "org.jetbrains.anko:anko-coroutines:0.10.4"
api "org.koin:koin-android-architecture:${versions.koin}" api "org.koin:koin-android-architecture:${versions.koin}"
api 'com.mikepenz:materialdrawer:6.0.7'
testImplementation project(':mail:testing')
testImplementation "org.robolectric:robolectric:${versions.robolectric}" testImplementation "org.robolectric:robolectric:${versions.robolectric}"
testImplementation "junit:junit:${versions.junit}" testImplementation "junit:junit:${versions.junit}"
testImplementation "com.google.truth:truth:${versions.truth}" testImplementation "com.google.truth:truth:${versions.truth}"

View file

@ -8,7 +8,6 @@ import android.content.pm.PackageManager
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
import android.os.StrictMode import android.os.StrictMode
import com.fsck.k9.activity.uiModule
import com.fsck.k9.autocrypt.autocryptModule import com.fsck.k9.autocrypt.autocryptModule
import com.fsck.k9.backend.backendModule import com.fsck.k9.backend.backendModule
import com.fsck.k9.crypto.openPgpModule import com.fsck.k9.crypto.openPgpModule
@ -22,8 +21,6 @@ import com.fsck.k9.service.BootReceiver
import com.fsck.k9.service.MailService import com.fsck.k9.service.MailService
import com.fsck.k9.service.ShutdownReceiver import com.fsck.k9.service.ShutdownReceiver
import com.fsck.k9.service.StorageGoneReceiver import com.fsck.k9.service.StorageGoneReceiver
import com.fsck.k9.ui.endtoend.endToEndUiModule
import com.fsck.k9.ui.settings.settingsUiModule
import org.koin.standalone.KoinComponent import org.koin.standalone.KoinComponent
import org.koin.standalone.inject import org.koin.standalone.inject
import timber.log.Timber import timber.log.Timber
@ -37,15 +34,12 @@ object Core : KoinComponent {
@JvmStatic @JvmStatic
val coreModules = listOf( val coreModules = listOf(
mainModule, mainModule,
settingsUiModule,
endToEndUiModule,
openPgpModule, openPgpModule,
autocryptModule, autocryptModule,
mailStoreModule, mailStoreModule,
backendModule, backendModule,
extractorModule, extractorModule,
htmlModule, htmlModule
uiModule
) )
/** /**

View file

@ -13,7 +13,6 @@ import android.os.AsyncTask;
import android.os.Environment; import android.os.Environment;
import com.fsck.k9.Account.SortType; import com.fsck.k9.Account.SortType;
import com.fsck.k9.activity.UpgradeDatabases;
import com.fsck.k9.core.BuildConfig; import com.fsck.k9.core.BuildConfig;
import com.fsck.k9.core.R; import com.fsck.k9.core.R;
import com.fsck.k9.mail.K9MailLib; import com.fsck.k9.mail.K9MailLib;
@ -36,7 +35,7 @@ public class K9 {
* accounts' databases. * accounts' databases.
* *
* <p> * <p>
* See {@link UpgradeDatabases} for a detailed explanation of the database upgrade process. * See {@code UpgradeDatabases} for a detailed explanation of the database upgrade process.
* </p> * </p>
*/ */
private static final String DATABASE_VERSION_CACHE = "database_version_cache"; private static final String DATABASE_VERSION_CACHE = "database_version_cache";

View file

@ -6,7 +6,6 @@ import com.fsck.k9.mail.TransportProvider
import com.fsck.k9.mail.power.PowerManager import com.fsck.k9.mail.power.PowerManager
import com.fsck.k9.mailstore.StorageManager import com.fsck.k9.mailstore.StorageManager
import com.fsck.k9.power.TracingPowerManager import com.fsck.k9.power.TracingPowerManager
import com.fsck.k9.ui.folders.FolderNameFormatter
import org.koin.dsl.module.applicationContext import org.koin.dsl.module.applicationContext
val mainModule = applicationContext { val mainModule = applicationContext {
@ -15,6 +14,5 @@ val mainModule = applicationContext {
bean { TransportProvider() } bean { TransportProvider() }
bean { get<Context>().resources } bean { get<Context>().resources }
bean { StorageManager.getInstance(get()) } bean { StorageManager.getInstance(get()) }
bean { FolderNameFormatter(get()) }
bean { TracingPowerManager.getPowerManager(get()) as PowerManager } bean { TracingPowerManager.getPowerManager(get()) as PowerManager }
} }

View file

@ -9,9 +9,7 @@ import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.support.v4.content.LocalBroadcastManager; import android.support.v4.content.LocalBroadcastManager;
import com.fsck.k9.fragment.MessageListFragment;
import com.fsck.k9.mail.Message; import com.fsck.k9.mail.Message;
import com.fsck.k9.mailstore.LocalFolder;
import com.fsck.k9.mailstore.LocalMessage; import com.fsck.k9.mailstore.LocalMessage;
import com.fsck.k9.provider.EmailProvider; import com.fsck.k9.provider.EmailProvider;
@ -161,7 +159,7 @@ public class EmailProviderCache {
* *
* <p><strong>Note:</strong> * <p><strong>Note:</strong>
* Notifying the content resolver of the change will cause the {@code CursorLoader} in * Notifying the content resolver of the change will cause the {@code CursorLoader} in
* {@link MessageListFragment} to reload the cursor. But especially with flag changes this will * {@code MessageListFragment} to reload the cursor. But especially with flag changes this will
* block because of the DB write operation to update the flags. So additionally we use * block because of the DB write operation to update the flags. So additionally we use
* {@link LocalBroadcastManager} to send a {@link #ACTION_CACHE_UPDATED} broadcast. This way * {@link LocalBroadcastManager} to send a {@link #ACTION_CACHE_UPDATED} broadcast. This way
* {@code MessageListFragment} can update the view without reloading the cursor. * {@code MessageListFragment} can update the view without reloading the cursor.

View file

@ -1,5 +1,6 @@
package com.fsck.k9.service; package com.fsck.k9.service;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
@ -9,21 +10,20 @@ import android.content.Intent;
import android.os.IBinder; import android.os.IBinder;
import android.os.PowerManager; import android.os.PowerManager;
import android.support.v4.content.LocalBroadcastManager; import android.support.v4.content.LocalBroadcastManager;
import timber.log.Timber;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.activity.UpgradeDatabases; import com.fsck.k9.mailstore.UnavailableStorageException;
import com.fsck.k9.power.TracingPowerManager; import com.fsck.k9.power.TracingPowerManager;
import com.fsck.k9.power.TracingPowerManager.TracingWakeLock; import com.fsck.k9.power.TracingPowerManager.TracingWakeLock;
import com.fsck.k9.mailstore.UnavailableStorageException; import timber.log.Timber;
/** /**
* Service used to upgrade the accounts' databases and/or track the progress of the upgrade. * Service used to upgrade the accounts' databases and/or track the progress of the upgrade.
* *
* <p> * <p>
* See {@link UpgradeDatabases} for a detailed explanation of the database upgrade process. * See {@code UpgradeDatabases} for a detailed explanation of the database upgrade process.
* </p> * </p>
*/ */
public class DatabaseUpgradeService extends Service { public class DatabaseUpgradeService extends Service {

View file

@ -14,9 +14,9 @@ import com.fsck.k9.mail.internet.TextBody;
import com.fsck.k9.mailstore.MessageCryptoAnnotations; import com.fsck.k9.mailstore.MessageCryptoAnnotations;
import org.junit.Test; import org.junit.Test;
import static com.fsck.k9.message.TestMessageConstructionUtils.bodypart; import static com.fsck.k9.mail.TestMessageConstructionUtils.bodypart;
import static com.fsck.k9.message.TestMessageConstructionUtils.messageFromBody; import static com.fsck.k9.mail.TestMessageConstructionUtils.messageFromBody;
import static com.fsck.k9.message.TestMessageConstructionUtils.multipart; import static com.fsck.k9.mail.TestMessageConstructionUtils.multipart;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;

View file

@ -9,11 +9,12 @@ import java.util.Locale;
import java.util.TimeZone; import java.util.TimeZone;
import android.app.Application; import android.app.Application;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import com.fsck.k9.DI; import com.fsck.k9.DI;
import com.fsck.k9.K9RobolectricTest; import com.fsck.k9.K9RobolectricTest;
import com.fsck.k9.activity.K9ActivityCommon;
import com.fsck.k9.mail.Address; import com.fsck.k9.mail.Address;
import com.fsck.k9.mail.BodyPart; import com.fsck.k9.mail.BodyPart;
import com.fsck.k9.mail.Message; import com.fsck.k9.mail.Message;
@ -40,9 +41,9 @@ import org.mockito.stubbing.Answer;
import org.openintents.openpgp.OpenPgpDecryptionResult; import org.openintents.openpgp.OpenPgpDecryptionResult;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
import static com.fsck.k9.message.TestMessageConstructionUtils.bodypart; import static com.fsck.k9.mail.TestMessageConstructionUtils.bodypart;
import static com.fsck.k9.message.TestMessageConstructionUtils.messageFromBody; import static com.fsck.k9.mail.TestMessageConstructionUtils.messageFromBody;
import static com.fsck.k9.message.TestMessageConstructionUtils.multipart; import static com.fsck.k9.mail.TestMessageConstructionUtils.multipart;
import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.assertSame; import static junit.framework.Assert.assertSame;
@ -225,7 +226,7 @@ public class MessageViewInfoExtractorTest extends K9RobolectricTest {
@Test @Test
public void testTextPlusRfc822Message() throws MessagingException { public void testTextPlusRfc822Message() throws MessagingException {
K9ActivityCommon.setLanguage(context, "en"); setLanguage("en");
Locale.setDefault(Locale.US); Locale.setDefault(Locale.US);
TimeZone.setDefault(TimeZone.getTimeZone("GMT+01:00")); TimeZone.setDefault(TimeZone.getTimeZone("GMT+01:00"));
@ -627,4 +628,13 @@ public class MessageViewInfoExtractorTest extends K9RobolectricTest {
return htmlProcessor; return htmlProcessor;
} }
private void setLanguage(String language) {
Locale locale = new Locale(language);
Resources resources = context.getResources();
Configuration config = resources.getConfiguration();
config.locale = locale;
resources.updateConfiguration(config, resources.getDisplayMetrics());
}
} }

View file

@ -9,19 +9,14 @@ if (rootProject.testCoverage) {
apply plugin: 'jacoco' apply plugin: 'jacoco'
} }
//noinspection GroovyAssignabilityCheck
configurations.all {
resolutionStrategy {
force "com.android.support:support-annotations:${versions.supportLibrary}"
force "com.android.support:design:${versions.supportLibrary}"
}
}
dependencies { dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${versions.kotlin}" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${versions.kotlin}"
implementation project(":app:ui")
implementation project(":app:core") implementation project(":app:core")
implementation "com.android.support:appcompat-v7:${versions.supportLibrary}"
testImplementation "org.robolectric:robolectric:${versions.robolectric}" testImplementation "org.robolectric:robolectric:${versions.robolectric}"
testImplementation "junit:junit:${versions.junit}" testImplementation "junit:junit:${versions.junit}"
testImplementation "com.google.truth:truth:${versions.truth}" testImplementation "com.google.truth:truth:${versions.truth}"

View file

@ -16,7 +16,7 @@ class App : Application() {
super.onCreate() super.onCreate()
DI.start(this, Core.coreModules + appModules) DI.start(this, Core.coreModules + uiModules + appModules)
K9.init(this) K9.init(this)
Core.init(this) Core.init(this)

View file

@ -2,18 +2,21 @@ package com.fsck.k9
import android.arch.lifecycle.Lifecycle import android.arch.lifecycle.Lifecycle
import android.arch.lifecycle.LifecycleOwner import android.arch.lifecycle.LifecycleOwner
import com.fsck.k9.notification.NotificationActionCreator
import com.fsck.k9.ui.endtoend.AutocryptKeyTransferActivity import com.fsck.k9.ui.endtoend.AutocryptKeyTransferActivity
import com.nhaarman.mockito_kotlin.doReturn import com.nhaarman.mockito_kotlin.doReturn
import com.nhaarman.mockito_kotlin.mock import com.nhaarman.mockito_kotlin.mock
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith
import org.koin.Koin import org.koin.Koin
import org.koin.dsl.module.applicationContext
import org.koin.log.PrintLogger import org.koin.log.PrintLogger
import org.koin.standalone.StandAloneContext import org.koin.test.AutoCloseKoinTest
import org.koin.test.dryRun import org.koin.test.dryRun
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
class DependencyInjectionTest : K9RobolectricTest() { @RunWith(RobolectricTestRunner::class)
@Config(application = App::class)
class DependencyInjectionTest : AutoCloseKoinTest() {
val lifecycleOwner = mock<LifecycleOwner> { val lifecycleOwner = mock<LifecycleOwner> {
on { lifecycle } doReturn mock<Lifecycle>() on { lifecycle } doReturn mock<Lifecycle>()
} }
@ -22,11 +25,6 @@ class DependencyInjectionTest : K9RobolectricTest() {
fun testDependencyTree() { fun testDependencyTree() {
Koin.logger = PrintLogger() Koin.logger = PrintLogger()
// NOTE: Users of the core module will have to provide these dependencies.
StandAloneContext.loadKoinModules(applicationContext {
bean { mock<NotificationActionCreator>() }
})
dryRun { dryRun {
mapOf( mapOf(
"lifecycleOwner" to lifecycleOwner, "lifecycleOwner" to lifecycleOwner,

View file

@ -0,0 +1 @@
mock-maker-inline

78
app/ui/build.gradle Normal file
View file

@ -0,0 +1,78 @@
apply plugin: 'com.android.library'
apply plugin: 'org.jetbrains.kotlin.android'
apply plugin: 'org.jetbrains.kotlin.android.extensions'
apply from: "${rootProject.projectDir}/gradle/plugins/checkstyle-android.gradle"
apply from: "${rootProject.projectDir}/gradle/plugins/findbugs-android.gradle"
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${versions.kotlin}"
implementation project(":app:core")
implementation project(":mail:common")
implementation project(':plugins:HoloColorPicker')
implementation project(':plugins:openpgp-api-lib:openpgp-api')
implementation "com.android.support:appcompat-v7:${versions.supportLibrary}"
implementation "com.takisoft.fix:preference-v7:${versions.preferencesFix}"
implementation "com.takisoft.fix:preference-v7-datetimepicker:${versions.preferencesFix}"
implementation "com.takisoft.fix:preference-v7-colorpicker:${versions.preferencesFix}"
implementation "com.takisoft.fix:preference-v7-ringtone:${versions.preferencesFix}"
implementation "com.android.support:recyclerview-v7:${versions.supportLibrary}"
implementation "android.arch.lifecycle:extensions:${versions.lifecycleExtensions}"
implementation "de.cketti.library.changelog:ckchangelog:1.2.1"
implementation "com.github.bumptech.glide:glide:3.6.1"
implementation "com.splitwise:tokenautocomplete:2.0.7"
implementation "de.cketti.safecontentresolver:safe-content-resolver-v14:0.9.0"
implementation "com.github.amlcurran.showcaseview:library:5.4.1"
implementation "com.xwray:groupie:2.1.0"
implementation "com.xwray:groupie-kotlin-android-extensions:2.1.0"
implementation 'com.mikepenz:materialdrawer:6.0.7'
testImplementation project(':mail:testing')
testImplementation "org.robolectric:robolectric:${versions.robolectric}"
testImplementation "junit:junit:${versions.junit}"
testImplementation "com.google.truth:truth:${versions.truth}"
testImplementation "org.mockito:mockito-core:${versions.mockito}"
testImplementation "com.nhaarman:mockito-kotlin:${versions.mockitoKotlin}"
testImplementation "org.jdom:jdom2:2.0.6"
testImplementation "org.koin:koin-test:${versions.koin}"
}
android {
compileSdkVersion buildConfig.compileSdk
buildToolsVersion buildConfig.buildTools
defaultConfig {
minSdkVersion buildConfig.minSdk
// For Robolectric tests
targetSdkVersion 22
}
lintOptions {
abortOnError false
lintConfig file("$rootProject.projectDir/config/lint/lint.xml")
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
testOptions {
unitTests {
includeAndroidResources = true
}
}
}
androidExtensions {
experimental = true
}
kotlin {
experimental {
coroutines "enable"
}
}

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.fsck.k9.ui" />

View file

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1,13 @@
package com.fsck.k9
import com.fsck.k9.activity.activityModule
import com.fsck.k9.ui.endtoend.endToEndUiModule
import com.fsck.k9.ui.settings.settingsUiModule
import com.fsck.k9.ui.uiModule
val uiModules = listOf(
activityModule,
uiModule,
settingsUiModule,
endToEndUiModule
)

View file

@ -18,7 +18,7 @@ import com.fsck.k9.BaseAccount;
import com.fsck.k9.FontSizes; import com.fsck.k9.FontSizes;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.search.SearchAccount; import com.fsck.k9.search.SearchAccount;

View file

@ -66,7 +66,7 @@ import com.fsck.k9.DI;
import com.fsck.k9.FontSizes; import com.fsck.k9.FontSizes;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.compose.MessageActions; import com.fsck.k9.activity.compose.MessageActions;
import com.fsck.k9.activity.misc.ExtendedAsyncTask; import com.fsck.k9.activity.misc.ExtendedAsyncTask;
import com.fsck.k9.activity.misc.NonConfigurationInstance; import com.fsck.k9.activity.misc.NonConfigurationInstance;

View file

@ -10,7 +10,7 @@ import android.text.format.DateUtils;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.AccountStats; import com.fsck.k9.AccountStats;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.controller.SimpleMessagingListener; import com.fsck.k9.controller.SimpleMessagingListener;
import com.fsck.k9.service.MailService; import com.fsck.k9.service.MailService;
import net.jcip.annotations.GuardedBy; import net.jcip.annotations.GuardedBy;

View file

@ -19,9 +19,9 @@ import android.widget.BaseAdapter;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.fsck.k9.core.R;
import com.fsck.k9.activity.compose.RecipientAdapter; import com.fsck.k9.activity.compose.RecipientAdapter;
import com.fsck.k9.ui.ContactBadge; import com.fsck.k9.ui.ContactBadge;
import com.fsck.k9.ui.R;
import com.fsck.k9.view.RecipientSelectView.Recipient; import com.fsck.k9.view.RecipientSelectView.Recipient;
import com.fsck.k9.view.ThemeUtils; import com.fsck.k9.view.ThemeUtils;

View file

@ -24,7 +24,7 @@ import com.fsck.k9.Account.FolderMode;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.controller.MessageReference; import com.fsck.k9.controller.MessageReference;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.controller.MessagingController; import com.fsck.k9.controller.MessagingController;
import com.fsck.k9.controller.MessagingListener; import com.fsck.k9.controller.MessagingListener;
import com.fsck.k9.controller.SimpleMessagingListener; import com.fsck.k9.controller.SimpleMessagingListener;

View file

@ -12,7 +12,7 @@ import android.widget.Toast;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.Identity; import com.fsck.k9.Identity;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import java.util.List; import java.util.List;
public class ChooseIdentity extends K9ListActivity { public class ChooseIdentity extends K9ListActivity {

View file

@ -9,7 +9,7 @@ import android.widget.LinearLayout;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.Identity; import com.fsck.k9.Identity;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import java.util.List; import java.util.List;
public class EditIdentity extends K9Activity { public class EditIdentity extends K9Activity {

View file

@ -9,7 +9,7 @@ import android.widget.ListView;
import android.widget.Toast; import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemClickListener;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.helper.ContactItem; import com.fsck.k9.helper.ContactItem;
public class EmailAddressList extends K9ListActivity implements OnItemClickListener { public class EmailAddressList extends K9ListActivity implements OnItemClickListener {

View file

@ -3,7 +3,7 @@ package com.fsck.k9.activity;
import android.content.Context; import android.content.Context;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.mail.Folder; import com.fsck.k9.mail.Folder;
import com.fsck.k9.mailstore.LocalFolder; import com.fsck.k9.mailstore.LocalFolder;

View file

@ -44,7 +44,7 @@ import com.fsck.k9.DI;
import com.fsck.k9.FontSizes; import com.fsck.k9.FontSizes;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.compose.MessageActions; import com.fsck.k9.activity.compose.MessageActions;
import com.fsck.k9.activity.setup.FolderSettings; import com.fsck.k9.activity.setup.FolderSettings;
import com.fsck.k9.controller.MessagingController; import com.fsck.k9.controller.MessagingController;

View file

@ -2,6 +2,6 @@ package com.fsck.k9.activity
import org.koin.dsl.module.applicationContext import org.koin.dsl.module.applicationContext
val uiModule = applicationContext { val activityModule = applicationContext {
bean { ColorChipProvider() } bean { ColorChipProvider() }
} }

View file

@ -6,7 +6,7 @@ import android.os.Parcelable;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.BaseAccount; import com.fsck.k9.BaseAccount;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.search.SearchAccount; import com.fsck.k9.search.SearchAccount;
public class LauncherShortcuts extends AccountList { public class LauncherShortcuts extends AccountList {

View file

@ -14,7 +14,7 @@ import android.widget.Toast;
import com.fsck.k9.Identity; import com.fsck.k9.Identity;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
public class ManageIdentities extends ChooseIdentity { public class ManageIdentities extends ChooseIdentity {
private boolean mIdentitiesChanged = false; private boolean mIdentitiesChanged = false;

View file

@ -49,7 +49,7 @@ import com.fsck.k9.Identity;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.controller.MessageReference; import com.fsck.k9.controller.MessageReference;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.MessageLoaderHelper.MessageLoaderCallbacks; import com.fsck.k9.activity.MessageLoaderHelper.MessageLoaderCallbacks;
import com.fsck.k9.activity.compose.AttachmentPresenter; import com.fsck.k9.activity.compose.AttachmentPresenter;
import com.fsck.k9.activity.compose.AttachmentPresenter.AttachmentMvpView; import com.fsck.k9.activity.compose.AttachmentPresenter.AttachmentMvpView;

View file

@ -47,7 +47,7 @@ import com.fsck.k9.K9;
import com.fsck.k9.K9.SplitViewMode; import com.fsck.k9.K9.SplitViewMode;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.controller.MessageReference; import com.fsck.k9.controller.MessageReference;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.compose.MessageActions; import com.fsck.k9.activity.compose.MessageActions;
import com.fsck.k9.activity.misc.SwipeGestureDetector.OnSwipeGestureListener; import com.fsck.k9.activity.misc.SwipeGestureDetector.OnSwipeGestureListener;
import com.fsck.k9.fragment.MessageListFragment; import com.fsck.k9.fragment.MessageListFragment;

View file

@ -16,7 +16,7 @@ import com.fsck.k9.Account;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.controller.MessageReference; import com.fsck.k9.controller.MessageReference;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.controller.MessagingController; import com.fsck.k9.controller.MessagingController;
import com.fsck.k9.notification.NotificationActionService; import com.fsck.k9.notification.NotificationActionService;

View file

@ -14,7 +14,7 @@ import android.widget.TextView;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.controller.MessagingController; import com.fsck.k9.controller.MessagingController;
import com.fsck.k9.mailstore.LocalStore; import com.fsck.k9.mailstore.LocalStore;
import com.fsck.k9.service.DatabaseUpgradeService; import com.fsck.k9.service.DatabaseUpgradeService;

View file

@ -10,7 +10,7 @@ import android.widget.TextView;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.Identity; import com.fsck.k9.Identity;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;

View file

@ -12,7 +12,7 @@ import android.support.annotation.IdRes;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.view.HighlightDialogFragment; import com.fsck.k9.view.HighlightDialogFragment;

View file

@ -12,7 +12,7 @@ import android.support.annotation.IdRes;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.view.HighlightDialogFragment; import com.fsck.k9.view.HighlightDialogFragment;

View file

@ -12,7 +12,7 @@ import android.support.annotation.IdRes;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.view.HighlightDialogFragment; import com.fsck.k9.view.HighlightDialogFragment;

View file

@ -12,7 +12,7 @@ import android.support.annotation.IdRes;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.view.HighlightDialogFragment; import com.fsck.k9.view.HighlightDialogFragment;

View file

@ -21,7 +21,7 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.fsck.k9.activity.misc.ContactPicture; import com.fsck.k9.activity.misc.ContactPicture;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.view.RecipientSelectView.Recipient; import com.fsck.k9.view.RecipientSelectView.Recipient;
import com.fsck.k9.view.RecipientSelectView.RecipientCryptoStatus; import com.fsck.k9.view.RecipientSelectView.RecipientCryptoStatus;
import com.fsck.k9.view.ThemeUtils; import com.fsck.k9.view.ThemeUtils;

View file

@ -20,7 +20,7 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.content.AsyncTaskLoader; import android.support.v4.content.AsyncTaskLoader;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.mail.Address; import com.fsck.k9.mail.Address;
import com.fsck.k9.view.RecipientSelectView.Recipient; import com.fsck.k9.view.RecipientSelectView.Recipient;
import com.fsck.k9.view.RecipientSelectView.RecipientCryptoStatus; import com.fsck.k9.view.RecipientSelectView.RecipientCryptoStatus;

View file

@ -16,7 +16,7 @@ import android.widget.Toast;
import android.widget.ViewAnimator; import android.widget.ViewAnimator;
import com.fsck.k9.FontSizes; import com.fsck.k9.FontSizes;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.MessageCompose; import com.fsck.k9.activity.MessageCompose;
import com.fsck.k9.mail.Address; import com.fsck.k9.mail.Address;
import com.fsck.k9.mail.Message.RecipientType; import com.fsck.k9.mail.Message.RecipientType;

View file

@ -22,7 +22,7 @@ import android.view.Menu;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.Identity; import com.fsck.k9.Identity;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.compose.ComposeCryptoStatus.AttachErrorState; import com.fsck.k9.activity.compose.ComposeCryptoStatus.AttachErrorState;
import com.fsck.k9.activity.compose.ComposeCryptoStatus.ComposeCryptoStatusBuilder; import com.fsck.k9.activity.compose.ComposeCryptoStatus.ComposeCryptoStatusBuilder;
import com.fsck.k9.activity.compose.ComposeCryptoStatus.SendErrorState; import com.fsck.k9.activity.compose.ComposeCryptoStatus.SendErrorState;

View file

@ -4,7 +4,7 @@ import android.content.Context;
import android.util.TypedValue; import android.util.TypedValue;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
public class ContactPicture { public class ContactPicture {

View file

@ -10,7 +10,7 @@ import android.view.View.OnClickListener;
import android.widget.Toast; import android.widget.Toast;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.K9Activity; import com.fsck.k9.activity.K9Activity;
import com.fsck.k9.helper.EmailHelper; import com.fsck.k9.helper.EmailHelper;
import com.fsck.k9.mail.ServerSettings.Type; import com.fsck.k9.mail.ServerSettings.Type;

View file

@ -28,7 +28,7 @@ import com.fsck.k9.Account;
import com.fsck.k9.Core; import com.fsck.k9.Core;
import com.fsck.k9.EmailAddressValidator; import com.fsck.k9.EmailAddressValidator;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.account.AccountCreator; import com.fsck.k9.account.AccountCreator;
import com.fsck.k9.activity.K9Activity; import com.fsck.k9.activity.K9Activity;
import com.fsck.k9.activity.setup.AccountSetupCheckSettings.CheckDirection; import com.fsck.k9.activity.setup.AccountSetupCheckSettings.CheckDirection;

View file

@ -30,7 +30,7 @@ import android.widget.TextView;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.DI; import com.fsck.k9.DI;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.K9Activity; import com.fsck.k9.activity.K9Activity;
import com.fsck.k9.controller.MessagingController; import com.fsck.k9.controller.MessagingController;
import com.fsck.k9.fragment.ConfirmationDialogFragment; import com.fsck.k9.fragment.ConfirmationDialogFragment;

View file

@ -11,7 +11,7 @@ import android.widget.LinearLayout;
import android.widget.RadioButton; import android.widget.RadioButton;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.K9Activity; import com.fsck.k9.activity.K9Activity;
public class AccountSetupComposition extends K9Activity { public class AccountSetupComposition extends K9Activity {

View file

@ -31,7 +31,7 @@ import com.fsck.k9.Account;
import com.fsck.k9.Account.FolderMode; import com.fsck.k9.Account.FolderMode;
import com.fsck.k9.DI; import com.fsck.k9.DI;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.account.AccountCreator; import com.fsck.k9.account.AccountCreator;
import com.fsck.k9.activity.K9Activity; import com.fsck.k9.activity.K9Activity;
import com.fsck.k9.activity.setup.AccountSetupCheckSettings.CheckDirection; import com.fsck.k9.activity.setup.AccountSetupCheckSettings.CheckDirection;

View file

@ -18,7 +18,7 @@ import com.fsck.k9.Account;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.activity.Accounts; import com.fsck.k9.activity.Accounts;
import com.fsck.k9.activity.K9Activity; import com.fsck.k9.activity.K9Activity;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.helper.Utility; import com.fsck.k9.helper.Utility;
public class AccountSetupNames extends K9Activity implements OnClickListener { public class AccountSetupNames extends K9Activity implements OnClickListener {

View file

@ -15,7 +15,7 @@ import com.fsck.k9.Account;
import com.fsck.k9.Core; import com.fsck.k9.Core;
import com.fsck.k9.DI; import com.fsck.k9.DI;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.K9Activity; import com.fsck.k9.activity.K9Activity;
import com.fsck.k9.controller.MessagingController; import com.fsck.k9.controller.MessagingController;

View file

@ -27,7 +27,7 @@ import android.widget.Toast;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.account.AccountCreator; import com.fsck.k9.account.AccountCreator;
import com.fsck.k9.activity.K9Activity; import com.fsck.k9.activity.K9Activity;
import com.fsck.k9.activity.setup.AccountSetupCheckSettings.CheckDirection; import com.fsck.k9.activity.setup.AccountSetupCheckSettings.CheckDirection;

View file

@ -2,7 +2,7 @@ package com.fsck.k9.activity.setup;
import android.content.res.Resources; import android.content.res.Resources;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.mail.AuthType; import com.fsck.k9.mail.AuthType;
class AuthTypeHolder { class AuthTypeHolder {

View file

@ -2,7 +2,7 @@ package com.fsck.k9.activity.setup;
import android.content.res.Resources; import android.content.res.Resources;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.mail.ConnectionSecurity; import com.fsck.k9.mail.ConnectionSecurity;
class ConnectionSecurityHolder { class ConnectionSecurityHolder {

View file

@ -12,7 +12,7 @@ import android.preference.Preference;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.DI; import com.fsck.k9.DI;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.FolderInfoHolder; import com.fsck.k9.activity.FolderInfoHolder;
import com.fsck.k9.activity.K9PreferenceActivity; import com.fsck.k9.activity.K9PreferenceActivity;
import com.fsck.k9.controller.MessagingController; import com.fsck.k9.controller.MessagingController;

View file

@ -11,7 +11,7 @@ import com.fsck.k9.FontSizes;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
import com.fsck.k9.activity.K9PreferenceActivity; import com.fsck.k9.activity.K9PreferenceActivity;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.preferences.Storage; import com.fsck.k9.preferences.Storage;
import com.fsck.k9.preferences.StorageEditor; import com.fsck.k9.preferences.StorageEditor;

View file

@ -35,7 +35,7 @@ import android.util.AttributeSet;
import android.view.View; import android.view.View;
import android.widget.SeekBar; import android.widget.SeekBar;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
/** /**

View file

@ -8,7 +8,7 @@ import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.widget.TextView; import android.widget.TextView;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.Accounts; import com.fsck.k9.activity.Accounts;
import com.fsck.k9.activity.K9Activity; import com.fsck.k9.activity.K9Activity;
import com.fsck.k9.message.html.HtmlConverter; import com.fsck.k9.message.html.HtmlConverter;

View file

@ -21,7 +21,7 @@ import android.widget.TextView;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.FontSizes; import com.fsck.k9.FontSizes;
import com.fsck.k9.K9; import com.fsck.k9.K9;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.mail.Address; import com.fsck.k9.mail.Address;
import com.fsck.k9.mailstore.DatabasePreviewType; import com.fsck.k9.mailstore.DatabasePreviewType;
import com.fsck.k9.ui.ContactBadge; import com.fsck.k9.ui.ContactBadge;

View file

@ -63,7 +63,7 @@ import com.fsck.k9.cache.EmailProviderCache;
import com.fsck.k9.controller.MessageReference; import com.fsck.k9.controller.MessageReference;
import com.fsck.k9.controller.MessagingController; import com.fsck.k9.controller.MessagingController;
import com.fsck.k9.core.BuildConfig; import com.fsck.k9.core.BuildConfig;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.fragment.ConfirmationDialogFragment.ConfirmationDialogFragmentListener; import com.fsck.k9.fragment.ConfirmationDialogFragment.ConfirmationDialogFragmentListener;
import com.fsck.k9.fragment.MessageListFragmentComparators.ArrivalComparator; import com.fsck.k9.fragment.MessageListFragmentComparators.ArrivalComparator;
import com.fsck.k9.fragment.MessageListFragmentComparators.AttachmentComparator; import com.fsck.k9.fragment.MessageListFragmentComparators.AttachmentComparator;

View file

@ -5,7 +5,7 @@ import android.view.View;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.TextView; import android.widget.TextView;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.ui.ContactBadge; import com.fsck.k9.ui.ContactBadge;

View file

@ -25,7 +25,7 @@ import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.Toast; import android.widget.Toast;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.mail.Address; import com.fsck.k9.mail.Address;

View file

@ -0,0 +1,8 @@
package com.fsck.k9.ui
import com.fsck.k9.ui.folders.FolderNameFormatter
import org.koin.dsl.module.applicationContext
val uiModule = applicationContext {
bean { FolderNameFormatter(get()) }
}

View file

@ -10,7 +10,7 @@ import android.widget.Button;
import android.widget.ImageButton; import android.widget.ImageButton;
import com.fsck.k9.FontSizes; import com.fsck.k9.FontSizes;
import com.fsck.k9.core.R; import com.fsck.k9.ui.R;
import com.fsck.k9.activity.MessageCompose; import com.fsck.k9.activity.MessageCompose;
import com.fsck.k9.message.html.HtmlConverter; import com.fsck.k9.message.html.HtmlConverter;
import com.fsck.k9.mailstore.AttachmentResolver; import com.fsck.k9.mailstore.AttachmentResolver;

Some files were not shown because too many files have changed in this diff Show more