diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index aaeec98..277ab47 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -50,10 +50,7 @@ android:name=".activity.FollowerListActivity" /> - + diff --git a/app/src/main/kotlin/io/github/anthonyeef/cattle/activity/BaseActivity.kt b/app/src/main/kotlin/io/github/anthonyeef/cattle/activity/BaseActivity.kt index d11fd73..258da71 100644 --- a/app/src/main/kotlin/io/github/anthonyeef/cattle/activity/BaseActivity.kt +++ b/app/src/main/kotlin/io/github/anthonyeef/cattle/activity/BaseActivity.kt @@ -1,11 +1,9 @@ package io.github.anthonyeef.cattle.activity import android.content.Context -import android.os.Build import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar -import android.view.View import io.github.anthonyeef.cattle.R import io.github.anthonyeef.cattle.utils.LocaleUtils @@ -24,7 +22,6 @@ open class BaseActivity : AppCompatActivity() { super.onPostCreate(savedInstanceState) setupToolbar() - setNavigationBarColor() } @@ -47,11 +44,4 @@ open class BaseActivity : AppCompatActivity() { toolbarTitle = title toolbar?.title = toolbarTitle } - - - private fun setNavigationBarColor() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR - } - } } diff --git a/app/src/main/kotlin/io/github/anthonyeef/cattle/activity/GeneralActivity.kt b/app/src/main/kotlin/io/github/anthonyeef/cattle/activity/GeneralActivity.kt index 40cdb47..1893ea5 100644 --- a/app/src/main/kotlin/io/github/anthonyeef/cattle/activity/GeneralActivity.kt +++ b/app/src/main/kotlin/io/github/anthonyeef/cattle/activity/GeneralActivity.kt @@ -1,8 +1,6 @@ package io.github.anthonyeef.cattle.activity -import android.os.Build import android.os.Bundle -import androidx.core.content.ContextCompat import io.github.anthonyeef.cattle.R import io.github.anthonyeef.cattle.extension.bindFragment import io.github.anthonyeef.cattle.fragment.FragmentInstanceCache @@ -15,9 +13,6 @@ class GeneralActivity : BaseActivity() { } - private val shouldTintStatusBar: Boolean by lazy { intent.extras.getBoolean(KEY_TINT_STATUS_BAR) } - - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_general) @@ -28,14 +23,4 @@ class GeneralActivity : BaseActivity() { bindFragment(fragmentToShow = it) } } - - override fun onPostCreate(savedInstanceState: Bundle?) { - super.onPostCreate(savedInstanceState) - - if (shouldTintStatusBar) { - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { - window.statusBarColor = ContextCompat.getColor(this, R.color.colorPrimaryDark) - } - } - } } \ No newline at end of file diff --git a/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/BaseFragment.kt b/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/BaseFragment.kt index c5bdace..0642095 100644 --- a/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/BaseFragment.kt +++ b/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/BaseFragment.kt @@ -1,7 +1,11 @@ package io.github.anthonyeef.cattle.fragment +import android.graphics.Color +import android.os.Bundle +import android.view.View import androidx.annotation.StringRes import androidx.appcompat.widget.Toolbar +import androidx.fragment.app.Fragment import com.uber.autodispose.android.lifecycle.AndroidLifecycleScopeProvider import io.github.anthonyeef.cattle.R import io.github.anthonyeef.cattle.activity.BaseActivity @@ -9,7 +13,7 @@ import io.github.anthonyeef.cattle.activity.BaseActivity /** * */ -abstract class BaseFragment : androidx.fragment.app.Fragment() { +abstract class BaseFragment : Fragment() { private val toolbar: Toolbar? by lazy { view!!.findViewById(R.id.toolbar) } @@ -20,6 +24,15 @@ abstract class BaseFragment : androidx.fragment.app.Fragment() { } + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + activity?.let { + it.window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_STABLE + it.window.statusBarColor = Color.TRANSPARENT + } + } + fun setToolbarTitle(title: CharSequence) { (activity as? BaseActivity)?.setToolbarTitle(title) } diff --git a/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/LoginFragment.kt b/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/LoginFragment.kt index fd7d2c0..1a43f29 100644 --- a/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/LoginFragment.kt +++ b/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/LoginFragment.kt @@ -27,9 +27,9 @@ import io.reactivex.disposables.CompositeDisposable class LoginFragment : BaseFragment(), LoginContract.View { private lateinit var mLoginPresenter: LoginContract.Presenter - private val loginBtn: FloatingActionButton? = view?.findViewById(R.id.login_btn) - private val name: TextView? = view?.findViewById(R.id.name_text) - private val cat: ImageView? = view?.findViewById(R.id.cat) + private var loginBtn: FloatingActionButton? = null + private var name: TextView? = null + private var cat: ImageView? = null private lateinit var _disposables: CompositeDisposable override fun isActive(): Boolean { @@ -50,6 +50,10 @@ class LoginFragment : BaseFragment(), LoginContract.View { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + loginBtn = view.findViewById(R.id.login_btn) + name = view.findViewById(R.id.name_text) + cat = view.findViewById(R.id.cat) + name?.setOnClickListener { mLoginPresenter.checkCredential() } diff --git a/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/SettingFragment.kt b/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/SettingFragment.kt index edf6e1d..5bca3ad 100644 --- a/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/SettingFragment.kt +++ b/app/src/main/kotlin/io/github/anthonyeef/cattle/fragment/SettingFragment.kt @@ -1,14 +1,21 @@ package io.github.anthonyeef.cattle.fragment +import android.content.Intent +import android.content.res.Resources +import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.appcompat.app.AlertDialog import io.github.anthonyeef.cattle.R +import io.github.anthonyeef.cattle.activity.HomeActivity import io.github.anthonyeef.cattle.data.SettingCenter import io.github.anthonyeef.cattle.entity.SettingItemEntity +import io.github.anthonyeef.cattle.utils.LocaleUtils import io.github.anthonyeef.cattle.viewbinder.SettingItemViewBinder import me.drakeet.multitype.register +import java.util.* class SettingFragment : BaseListFragment(), SettingItemViewBinder.SettingItemClickCallback { @@ -51,30 +58,37 @@ class SettingFragment : BaseListFragment(), SettingItemViewBinder.SettingItemCli private fun openLanguageSelector() { - val languages = listOf(getString(R.string.text_language_default), getString(R.string.text_language_english), getString(R.string.text_language_chinese_simple)) - // fixme - /*selector(getString(R.string.text_which_language), languages, { _, i -> - var locale = Locale.getDefault().language - when (i) { - 0 -> { - locale = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - Resources.getSystem().configuration.locales[0].language - } else { - Resources.getSystem().configuration.locale.language - } - } - 1 -> { - locale = Locale.ENGLISH.language - } - 2 -> { - locale = Locale.SIMPLIFIED_CHINESE.language - } - } - - context?.let { - val newContext = LocaleUtils.setLocale(it, locale) - newContext.startActivity(newContext.intentFor().clearTop()) - } - })*/ + val languages = arrayOf(getString(R.string.text_language_default), getString(R.string.text_language_english), getString(R.string.text_language_chinese_simple)) + val alertDialog = AlertDialog.Builder(context!!) + .setItems(languages) { dialog, which -> + var locale = Locale.getDefault().language + when (which) { + 0 -> { + locale = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + Resources.getSystem().configuration.locales[0].language + } else { + Resources.getSystem().configuration.locale.language + } + } + + 1 -> { + locale = Locale.ENGLISH.language + } + + 2 -> { + locale = Locale.SIMPLIFIED_CHINESE.language + } + } + context?.let { + val newContext = LocaleUtils.setLocale(it, locale) + val intent = Intent(context, HomeActivity::class.java).apply { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) + } + newContext.startActivity(intent) + } + } + .create() + alertDialog.show() } } \ No newline at end of file diff --git a/app/src/main/res/layout-v19/view_profile_header.xml b/app/src/main/res/layout-v19/view_profile_header.xml deleted file mode 100644 index 1963edd..0000000 --- a/app/src/main/res/layout-v19/view_profile_header.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/activity_general.xml b/app/src/main/res/layout/activity_general.xml index 1e85770..d0c61f3 100644 --- a/app/src/main/res/layout/activity_general.xml +++ b/app/src/main/res/layout/activity_general.xml @@ -9,7 +9,6 @@ android:id="@id/container" android:layout_width="match_parent" android:layout_height="match_parent" - android:fitsSystemWindows="true" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_toolbar_general.xml b/app/src/main/res/layout/activity_toolbar_general.xml index fae4b17..0064e83 100644 --- a/app/src/main/res/layout/activity_toolbar_general.xml +++ b/app/src/main/res/layout/activity_toolbar_general.xml @@ -4,7 +4,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - android:fitsSystemWindows="true" > diff --git a/app/src/main/res/layout/frag_login.xml b/app/src/main/res/layout/frag_login.xml index 48df4d1..f33a804 100644 --- a/app/src/main/res/layout/frag_login.xml +++ b/app/src/main/res/layout/frag_login.xml @@ -28,7 +28,6 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:scaleType="fitCenter" - android:visibility="gone" app:layout_constraintStart_toEndOf="@id/name_text" app:layout_constraintTop_toBottomOf="@id/name_text" app:layout_constraintBottom_toTopOf="@id/login_btn" diff --git a/app/src/main/res/layout/frag_profile.xml b/app/src/main/res/layout/frag_profile.xml index 09f5b3f..bfa7c2a 100644 --- a/app/src/main/res/layout/frag_profile.xml +++ b/app/src/main/res/layout/frag_profile.xml @@ -4,7 +4,6 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - android:fitsSystemWindows="true" > diff --git a/app/src/main/res/layout/toolbar_general.xml b/app/src/main/res/layout/toolbar_general.xml index 4f54640..aa33550 100644 --- a/app/src/main/res/layout/toolbar_general.xml +++ b/app/src/main/res/layout/toolbar_general.xml @@ -7,7 +7,6 @@ android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/colorPrimary" - android:fitsSystemWindows="true" app:contentInsetStartWithNavigation="0dp" > diff --git a/app/src/main/res/layout/view_profile_header.xml b/app/src/main/res/layout/view_profile_header.xml index 4b128b1..0d04939 100644 --- a/app/src/main/res/layout/view_profile_header.xml +++ b/app/src/main/res/layout/view_profile_header.xml @@ -1,10 +1,9 @@ - @@ -88,6 +87,7 @@ android:textColor="@color/text_color_normal" android:lineSpacingMultiplier="1.2" android:maxLines="5" + tools:text="self introduction \n lalala" app:layout_constraintTop_toBottomOf="@id/profile_count_group" app:layout_constraintBottom_toTopOf="@+id/bottom_divider" app:layout_constraintStart_toStartOf="@id/left_guideline" diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml deleted file mode 100644 index 1c7be31..0000000 --- a/app/src/main/res/values-v21/styles.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/build.gradle b/build.gradle index 245db78..4dc89eb 100644 --- a/build.gradle +++ b/build.gradle @@ -33,7 +33,7 @@ task clean(type: Delete) { } ext { - minSdkVersion = 19 + minSdkVersion = 21 targetSdkVersion = 28 compileSdkVersion = 28 ankoLibraryVersion = '0.10.5' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4f5a6bc..7c6b1d6 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip diff --git a/versions.gradle b/versions.gradle index 7f2db14..00bf639 100644 --- a/versions.gradle +++ b/versions.gradle @@ -2,7 +2,7 @@ ext.deps = [:] def versions = [:] versions.kotlin = "1.3.10" -versions.gradle = '3.4.2' +versions.gradle = '3.5.2' versions.support = "1.0.0" versions.arch = "1.1.1" versions.room = "2.0.0"