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:
parent
2ffe0a50df
commit
ad4e725457
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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"/>
|
||||
|
@ -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>
|
Loading…
x
Reference in New Issue
Block a user