1
0
mirror of https://github.com/TwidereProject/Twidere-Android synced 2025-02-12 09:40:50 +01:00

improved tab editor hint

This commit is contained in:
Mariotaku Lee 2017-01-25 17:39:11 +08:00
parent 2ffe0a50df
commit ad4e725457
No known key found for this signature in database
GPG Key ID: 15C10F89D7C33535
4 changed files with 30 additions and 30 deletions

View File

@ -43,7 +43,6 @@ import kotlinx.android.synthetic.main.layout_api_editor.*
import kotlinx.android.synthetic.main.layout_api_editor_advanced_fields.*
import org.mariotaku.restfu.annotation.method.GET
import org.mariotaku.restfu.http.HttpRequest
import org.mariotaku.restfu.http.HttpResponse
import org.mariotaku.restfu.http.RestHttpClient
import org.mariotaku.twidere.BuildConfig
import org.mariotaku.twidere.R
@ -54,9 +53,7 @@ import org.mariotaku.twidere.constant.defaultAPIConfigKey
import org.mariotaku.twidere.fragment.BaseDialogFragment
import org.mariotaku.twidere.model.CustomAPIConfig
import org.mariotaku.twidere.model.account.cred.Credentials
import org.mariotaku.twidere.util.JsonSerializer
import org.mariotaku.twidere.util.MicroBlogAPIFactory
import org.mariotaku.twidere.util.Utils
import org.mariotaku.twidere.util.dagger.GeneralComponentHelper
import java.io.IOException
import javax.inject.Inject
@ -217,12 +214,13 @@ class APIEditorActivity : BaseActivity(), OnCheckedChangeListener, OnClickListen
val request = HttpRequest(GET.METHOD, DEFAULT_API_CONFIGS_URL,
null, null, null)
try {
return client.newCall(request).execute().use { response ->
if (response.isSuccessful) {
return@use LoganSquare.parseList(response.body.stream(),
CustomAPIConfig::class.java)
client.newCall(request).execute().use { response ->
// Save to cache
if (!response.isSuccessful) {
return null
}
return@use null
// Save to cache
return LoganSquare.parseList(response.body.stream(), CustomAPIConfig::class.java)
}
} catch (e: IOException) {
// Ignore
@ -235,11 +233,14 @@ class APIEditorActivity : BaseActivity(), OnCheckedChangeListener, OnClickListen
}
companion object {
val DEFAULT_API_CONFIGS_URL = "https://raw.githubusercontent.com/TwidereProject/Twidere-Android/master/twidere/src/main/assets/data/default_api_configs.json"
const val DEFAULT_API_CONFIGS_URL = "https://twidere.mariotaku.org/assets/data/default_api_configs.json"
}
}
private inner class CustomAPIConfigArrayAdapter(context: Context, defaultItems: List<CustomAPIConfig>) : ArrayAdapter<CustomAPIConfig>(context, android.R.layout.simple_list_item_1, defaultItems) {
private inner class CustomAPIConfigArrayAdapter(
context: Context,
defaultItems: List<CustomAPIConfig>
) : ArrayAdapter<CustomAPIConfig>(context, android.R.layout.simple_list_item_1, defaultItems) {
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
val view = super.getView(position, convertView, parent)

View File

@ -258,11 +258,11 @@ class CustomTabsFragment : BaseFragment(), LoaderCallbacks<Cursor?>, MultiChoice
}
val tabName = dialog.findViewById(R.id.tabName) as EditText
val iconSpinner = dialog.findViewById(R.id.tab_icon_spinner) as Spinner
val accountSpinner = dialog.findViewById(R.id.account_spinner) as Spinner
val accountContainer = dialog.findViewById(R.id.account_container)!!
val iconSpinner = dialog.findViewById(R.id.tabIconSpinner) as Spinner
val accountSpinner = dialog.findViewById(R.id.accountSpinner) as Spinner
val accountContainer = dialog.findViewById(R.id.accountContainer)!!
val accountSectionHeader = accountContainer.sectionHeader
val extraConfigContainer = dialog.findViewById(R.id.extra_config_container) as LinearLayout
val extraConfigContainer = dialog.findViewById(R.id.extraConfigContainer) as LinearLayout
val positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE)
@ -360,10 +360,13 @@ class CustomTabsFragment : BaseFragment(), LoaderCallbacks<Cursor?>, MultiChoice
}
}
tab.extras = CustomTabUtils.newTabExtras(tabType)
extraConfigurations.forEach {
extraConfigurations.forEach { extraConf ->
// Make sure immutable configuration skipped in edit mode
if (editMode && !it.isMutable) return@forEach
if (!conf.applyExtraConfigurationTo(tab, it)) {
if (editMode && !extraConf.isMutable) return@forEach
if (!conf.applyExtraConfigurationTo(tab, extraConf)) {
val titleString = extraConf.title.createString(context)
Toast.makeText(context, getString(R.string.message_tab_field_is_required,
titleString), Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
}
@ -383,7 +386,7 @@ class CustomTabsFragment : BaseFragment(), LoaderCallbacks<Cursor?>, MultiChoice
}
override fun getAccount(): AccountDetails? {
return (dialog.findViewById(R.id.account_spinner) as Spinner).selectedItem as? AccountDetails
return (dialog.findViewById(R.id.accountSpinner) as Spinner).selectedItem as? AccountDetails
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
@ -417,11 +420,10 @@ class CustomTabsFragment : BaseFragment(), LoaderCallbacks<Cursor?>, MultiChoice
internal class TabIconsAdapter(context: Context) : ArrayAdapter<DrawableHolder>(context, R.layout.spinner_item_custom_tab_icon) {
private val iconColor: Int
private val iconColor: Int = ThemeUtils.getThemeForegroundColor(context)
init {
setDropDownViewResource(R.layout.list_item_two_line_small)
iconColor = ThemeUtils.getThemeForegroundColor(context)
}
override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View {
@ -461,13 +463,9 @@ class CustomTabsFragment : BaseFragment(), LoaderCallbacks<Cursor?>, MultiChoice
class CustomTabsAdapter(context: Context) : SimpleDragSortCursorAdapter(context,
R.layout.list_item_custom_tab, null, emptyArray(), intArrayOf(), 0) {
private val iconColor: Int
private val iconColor: Int = ThemeUtils.getThemeForegroundColor(context)
private var indices: TabCursorIndices? = null
init {
iconColor = ThemeUtils.getThemeForegroundColor(context)
}
override fun bindView(view: View, context: Context?, cursor: Cursor) {
super.bindView(view, context, cursor)
val holder = view.tag as TwoLineWithIconViewHolder

View File

@ -9,14 +9,14 @@
android:padding="@dimen/element_spacing_large">
<LinearLayout
android:id="@+id/name_icon"
android:id="@+id/nameIconContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<Spinner
android:id="@+id/tab_icon_spinner"
android:id="@+id/tabIconSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/element_spacing_normal"
@ -36,7 +36,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/account_container"
android:id="@+id/accountContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@ -44,7 +44,7 @@
<include layout="@layout/list_item_section_header"/>
<Spinner
android:id="@+id/account_spinner"
android:id="@+id/accountSpinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/element_spacing_normal"
@ -52,7 +52,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/extra_config_container"
android:id="@+id/extraConfigContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/>

View File

@ -910,4 +910,5 @@
<string name="message_compose_write_storage_permission_not_granted">Permission is required to delete taken photo/video</string>
<string name="message_video_too_short">Video too short</string>
<string name="message_video_too_long">Video too long</string>
<string name="message_tab_field_is_required">Field \"<xliff:g example="Field" id="name">%s</xliff:g>\" is required</string>
</resources>