diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 90e58ffcb3d80d0a0a54e76c84a50e851c622ad6..22ee8f9414e2f0247046571a9acda962e5fdabf7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,14 +8,14 @@ <!--<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />--> <application - android:name="de.kuschku.quasseldroid.QuasselDroid" + android:name=".QuasselDroid" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/Theme.SplashTheme"> <activity - android:name="de.kuschku.quasseldroid.ui.chat.ChatActivity" + android:name=".ui.chat.ChatActivity" android:exported="true" android:label="@string/app_name" android:launchMode="singleTask" @@ -34,31 +34,32 @@ </activity> <activity - android:name="de.kuschku.quasseldroid.ui.setup.accounts.setup.AccountSetupActivity" + android:name=".ui.setup.accounts.setup.AccountSetupActivity" android:exported="false" android:label="@string/app_name" - android:parentActivityName="de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity" + android:parentActivityName=".ui.setup.accounts.selection.AccountSelectionActivity" android:windowSoftInputMode="adjustResize" /> <activity - android:name="de.kuschku.quasseldroid.ui.setup.accounts.edit.AccountEditActivity" + android:name=".ui.setup.accounts.edit.AccountEditActivity" android:exported="false" android:label="@string/app_name" - android:parentActivityName="de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity" + android:parentActivityName=".ui.setup.accounts.selection.AccountSelectionActivity" android:windowSoftInputMode="adjustResize" /> <activity - android:name="de.kuschku.quasseldroid.ui.settings.SettingsActivity" + android:name=".ui.settings.app.AppSettingsActivity" android:exported="false" android:label="@string/label_settings" - android:parentActivityName="de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity" + android:parentActivityName=".ui.chat.ChatActivity" android:windowSoftInputMode="adjustResize" /> <activity - android:name="de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity" + android:name=".ui.setup.accounts.selection.AccountSelectionActivity" android:exported="false" android:label="@string/app_name" + android:parentActivityName=".ui.chat.ChatActivity" android:windowSoftInputMode="adjustResize" /> <service - android:name="de.kuschku.quasseldroid.service.QuasselService" + android:name=".service.QuasselService" android:description="@string/connection_service_description" android:exported="false" android:label="@string/connection_service_title" /> diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt index 91d1300d42ebe8b2066f3fa157dacff6f0b77c1e..32b549b60bfe69ab6459e2eb1e459bae60c9fd91 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt @@ -6,8 +6,8 @@ import de.kuschku.quasseldroid.service.QuasselService import de.kuschku.quasseldroid.ui.chat.ChatActivity import de.kuschku.quasseldroid.ui.chat.ChatActivityModule import de.kuschku.quasseldroid.ui.chat.ChatFragmentProvider -import de.kuschku.quasseldroid.ui.settings.SettingsActivity -import de.kuschku.quasseldroid.ui.settings.SettingsFragmentProvider +import de.kuschku.quasseldroid.ui.settings.app.AppSettingsActivity +import de.kuschku.quasseldroid.ui.settings.app.AppSettingsFragmentProvider import de.kuschku.quasseldroid.ui.setup.accounts.edit.AccountEditActivity import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionFragmentProvider @@ -19,8 +19,8 @@ abstract class ActivityModule { @ContributesAndroidInjector(modules = [ChatActivityModule::class, ChatFragmentProvider::class]) abstract fun bindChatActivity(): ChatActivity - @ContributesAndroidInjector(modules = [SettingsFragmentProvider::class]) - abstract fun bindSettingsActivity(): SettingsActivity + @ContributesAndroidInjector(modules = [AppSettingsFragmentProvider::class]) + abstract fun bindAppSettingsActivity(): AppSettingsActivity @ContributesAndroidInjector(modules = [AccountSetupFragmentProvider::class]) abstract fun bindAccountSetupActivity(): AccountSetupActivity diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt index f06944fd3a7ff0d7897b5504dde0fb4cdb99122c..5365c3e4002659076f827a8d52342975e8c06899 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt @@ -37,7 +37,7 @@ import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.persistence.QuasselDatabase import de.kuschku.quasseldroid.ui.chat.input.Editor import de.kuschku.quasseldroid.ui.chat.input.MessageHistoryAdapter -import de.kuschku.quasseldroid.ui.settings.SettingsActivity +import de.kuschku.quasseldroid.ui.settings.app.AppSettingsActivity import de.kuschku.quasseldroid.util.helper.editCommit import de.kuschku.quasseldroid.util.helper.invoke import de.kuschku.quasseldroid.util.helper.toLiveData @@ -346,7 +346,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc true } R.id.settings -> { - startActivity(Intent(applicationContext, SettingsActivity::class.java)) + startActivity(Intent(applicationContext, AppSettingsActivity::class.java)) true } R.id.disconnect -> { diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/settings/SettingsActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/settings/SettingsActivity.kt index 9a5526a8cb221cd16921dbfb3bae46e88c9322bf..99f2657f894f1bd7ac35fa9b86e546558885ce92 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/settings/SettingsActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/settings/SettingsActivity.kt @@ -1,13 +1,16 @@ package de.kuschku.quasseldroid.ui.settings import android.os.Bundle +import android.support.v4.app.Fragment import android.support.v7.widget.Toolbar import butterknife.BindView import butterknife.ButterKnife import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.util.service.ServiceBoundActivity -class SettingsActivity : ServiceBoundActivity() { +abstract class SettingsActivity : ServiceBoundActivity() { + protected abstract val fragment: Fragment + @BindView(R.id.toolbar) lateinit var toolbar: Toolbar @@ -18,5 +21,9 @@ class SettingsActivity : ServiceBoundActivity() { setSupportActionBar(toolbar) supportActionBar?.setDisplayHomeAsUpEnabled(true) + + val transaction = supportFragmentManager.beginTransaction() + transaction.add(R.id.fragment_container, fragment) + transaction.commit() } } \ No newline at end of file diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/settings/SettingsFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/settings/SettingsFragmentProvider.kt deleted file mode 100644 index 2011afc84bc2ec7ecedc08b9d712a1e47e20df43..0000000000000000000000000000000000000000 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/settings/SettingsFragmentProvider.kt +++ /dev/null @@ -1,10 +0,0 @@ -package de.kuschku.quasseldroid.ui.settings - -import dagger.Module -import dagger.android.ContributesAndroidInjector - -@Module -abstract class SettingsFragmentProvider { - @ContributesAndroidInjector - abstract fun bindSettingsFragment(): SettingsFragment -} \ No newline at end of file diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/settings/app/AppSettingsActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/settings/app/AppSettingsActivity.kt new file mode 100644 index 0000000000000000000000000000000000000000..d1127016e14080268158ef26c78e03567e59bfd8 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/settings/app/AppSettingsActivity.kt @@ -0,0 +1,7 @@ +package de.kuschku.quasseldroid.ui.settings.app + +import de.kuschku.quasseldroid.ui.settings.SettingsActivity + +class AppSettingsActivity : SettingsActivity() { + override val fragment = AppSettingsFragment() +} \ No newline at end of file diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/settings/SettingsFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/settings/app/AppSettingsFragment.kt similarity index 89% rename from app/src/main/java/de/kuschku/quasseldroid/ui/settings/SettingsFragment.kt rename to app/src/main/java/de/kuschku/quasseldroid/ui/settings/app/AppSettingsFragment.kt index 4f0203de6167ee8024ac1e0390935f14c2cfb00d..08abd25c9b46f92a441d8ea30dd7d2ae1997bfa4 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/settings/app/AppSettingsFragment.kt @@ -1,4 +1,4 @@ -package de.kuschku.quasseldroid.ui.settings +package de.kuschku.quasseldroid.ui.settings.app import android.content.SharedPreferences import android.os.Bundle @@ -11,8 +11,8 @@ import de.kuschku.quasseldroid.settings.Settings import de.kuschku.quasseldroid.util.backport.DaggerPreferenceFragmentCompat import javax.inject.Inject -class SettingsFragment : DaggerPreferenceFragmentCompat(), - SharedPreferences.OnSharedPreferenceChangeListener { +class AppSettingsFragment : DaggerPreferenceFragmentCompat(), + SharedPreferences.OnSharedPreferenceChangeListener { @Inject lateinit var appearanceSettings: AppearanceSettings diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/settings/app/AppSettingsFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/settings/app/AppSettingsFragmentProvider.kt new file mode 100644 index 0000000000000000000000000000000000000000..15b0a5bd5155767b6cda6170cbe5710c4533ff8a --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/settings/app/AppSettingsFragmentProvider.kt @@ -0,0 +1,10 @@ +package de.kuschku.quasseldroid.ui.settings.app + +import dagger.Module +import dagger.android.ContributesAndroidInjector + +@Module +abstract class AppSettingsFragmentProvider { + @ContributesAndroidInjector + abstract fun bindAppSettingsFragment(): AppSettingsFragment +} \ No newline at end of file diff --git a/app/src/main/res/layout-sw720dp/activity_settings.xml b/app/src/main/res/layout-sw720dp/activity_settings.xml index 8e7395e7ba80d70e9a1ee1067055f0f9c9b6839c..42e160571376ea10847cbee6408e3b96dbdf87e6 100644 --- a/app/src/main/res/layout-sw720dp/activity_settings.xml +++ b/app/src/main/res/layout-sw720dp/activity_settings.xml @@ -1,6 +1,5 @@ <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#eeeeee" @@ -41,12 +40,10 @@ android:layout_height="match_parent" android:scrollbars="vertical"> - <fragment - android:id="@+id/settingsFragment" - android:name="de.kuschku.quasseldroid.ui.settings.SettingsFragment" + <FrameLayout + android:id="@+id/fragment_container" android:layout_width="match_parent" - android:layout_height="wrap_content" - tools:layout="@xml/preferences" /> + android:layout_height="wrap_content" /> </android.support.v4.widget.NestedScrollView> </android.support.v7.widget.CardView> diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 7e6d5f030c40cb5acdb4a9f0519d8dc2c7bcb4f1..a42c0cb50936a04d4c3d4471cfc45f195073e601 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -1,13 +1,11 @@ <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" @@ -27,12 +25,10 @@ </android.support.design.widget.AppBarLayout> - <fragment - android:id="@+id/settingsFragment" - android:name="de.kuschku.quasseldroid.ui.settings.SettingsFragment" + <FrameLayout + android:id="@+id/fragment_container" android:layout_width="fill_parent" - android:layout_height="fill_parent" - tools:layout="@xml/preferences" /> + android:layout_height="fill_parent" /> </LinearLayout> </android.support.v4.widget.DrawerLayout> \ No newline at end of file