improved link handler
This commit is contained in:
parent
8c85c28e31
commit
1cac394c27
|
@ -317,6 +317,7 @@ public interface TwidereDataStore {
|
|||
String TYPE_USER = "user";
|
||||
String TYPE_SEARCH_HISTORY = "search_history";
|
||||
String TYPE_SCREEN_NAME = "screen_name";
|
||||
String TYPE_MESSAGE = "message";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -251,7 +251,7 @@
|
|||
</activity>
|
||||
<activity
|
||||
android:name=".activity.QuickSearchBarActivity"
|
||||
android:label="@string/search"
|
||||
android:label="@string/title_search"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/Theme.Twidere.QuickSearchBar"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
|
|
|
@ -24,7 +24,7 @@ public class SearchTabConfiguration extends TabConfiguration {
|
|||
@NonNull
|
||||
@Override
|
||||
public StringHolder getName() {
|
||||
return StringHolder.resource(R.string.search);
|
||||
return StringHolder.resource(R.string.action_search);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
|
|
@ -41,7 +41,7 @@ public class KeyboardShortcutsHandler implements KeyboardShortcutConstants {
|
|||
|
||||
static {
|
||||
sActionLabelMap.put(ACTION_COMPOSE, R.string.action_compose);
|
||||
sActionLabelMap.put(ACTION_SEARCH, R.string.search);
|
||||
sActionLabelMap.put(ACTION_SEARCH, R.string.action_search);
|
||||
sActionLabelMap.put(ACTION_MESSAGE, R.string.new_direct_message);
|
||||
sActionLabelMap.put(ACTION_HOME_ACCOUNTS_DASHBOARD, R.string.open_accounts_dashboard);
|
||||
sActionLabelMap.put(ACTION_STATUS_REPLY, R.string.action_reply);
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* Twidere - Twitter client for Android
|
||||
*
|
||||
* Copyright (C) 2012-2017 Mariotaku Lee <mariotaku.lee@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.mariotaku.twidere.util.activity;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.view.View;
|
||||
|
||||
import org.mariotaku.twidere.activity.LinkHandlerActivity;
|
||||
import org.mariotaku.twidere.fragment.iface.IToolBarSupportFragment;
|
||||
|
||||
/**
|
||||
* Created by mariotaku on 2017/2/19.
|
||||
*/
|
||||
|
||||
public class LinkHandlerFragmentLifecycleCallbacks {
|
||||
|
||||
public static FragmentManager.FragmentLifecycleCallbacks get(final LinkHandlerActivity activity) {
|
||||
final FragmentManager fm = activity.getSupportFragmentManager();
|
||||
return fm.new FragmentLifecycleCallbacks() {
|
||||
@Override
|
||||
public void onFragmentViewCreated(final FragmentManager fm1, final Fragment f, final View v, final Bundle savedInstanceState) {
|
||||
if (f instanceof IToolBarSupportFragment) {
|
||||
activity.setSupportActionBar(((IToolBarSupportFragment) f).getToolbar());
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
|
@ -28,6 +28,7 @@ import android.net.Uri
|
|||
import android.os.BadParcelableException
|
||||
import android.os.Bundle
|
||||
import android.support.v4.app.Fragment
|
||||
import android.support.v4.app.FragmentManager.FragmentLifecycleCallbacks
|
||||
import android.support.v4.app.NavUtils
|
||||
import android.support.v4.view.WindowCompat
|
||||
import android.support.v7.widget.Toolbar
|
||||
|
@ -64,6 +65,7 @@ import org.mariotaku.twidere.model.analyzer.PurchaseFinished
|
|||
import org.mariotaku.twidere.util.*
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler.KeyboardShortcutCallback
|
||||
import org.mariotaku.twidere.util.Utils.LINK_ID_FILTERS_IMPORT_BLOCKS
|
||||
import org.mariotaku.twidere.util.activity.LinkHandlerFragmentLifecycleCallbacks
|
||||
import org.mariotaku.twidere.util.linkhandler.TwidereLinkMatcher
|
||||
import org.mariotaku.twidere.util.theme.getCurrentThemeResource
|
||||
|
||||
|
@ -76,6 +78,7 @@ class LinkHandlerActivity : BaseActivity(), SystemWindowsInsetsCallback, IContro
|
|||
private var actionBarHeight: Int = 0
|
||||
private var subtitle: CharSequence? = null
|
||||
private var hideOffsetNotSupported: Boolean = false
|
||||
private lateinit var fragmentLifecycleCallbacks: FragmentLifecycleCallbacks
|
||||
|
||||
override val currentVisibleFragment: Fragment?
|
||||
get() = supportFragmentManager.findFragmentByTag("content_fragment")
|
||||
|
@ -86,6 +89,9 @@ class LinkHandlerActivity : BaseActivity(), SystemWindowsInsetsCallback, IContro
|
|||
controlBarShowHideHelper = ControlBarShowHideHelper(this)
|
||||
multiSelectHandler.dispatchOnCreate()
|
||||
|
||||
fragmentLifecycleCallbacks = LinkHandlerFragmentLifecycleCallbacks.get(this)
|
||||
supportFragmentManager.registerFragmentLifecycleCallbacks(fragmentLifecycleCallbacks, false)
|
||||
|
||||
val uri = intent.data ?: run {
|
||||
finish()
|
||||
return
|
||||
|
@ -147,6 +153,11 @@ class LinkHandlerActivity : BaseActivity(), SystemWindowsInsetsCallback, IContro
|
|||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
supportFragmentManager.unregisterFragmentLifecycleCallbacks(fragmentLifecycleCallbacks)
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
multiSelectHandler.dispatchOnStart()
|
||||
|
|
|
@ -7,7 +7,6 @@ import android.os.Bundle
|
|||
import android.support.v4.app.Fragment
|
||||
import android.support.v4.app.FragmentActivity
|
||||
import android.support.v4.view.ViewPager.OnPageChangeListener
|
||||
import android.support.v7.app.AppCompatActivity
|
||||
import android.support.v7.widget.Toolbar
|
||||
import android.view.KeyEvent
|
||||
import android.view.LayoutInflater
|
||||
|
@ -41,7 +40,6 @@ abstract class AbsToolbarTabPagesFragment : BaseFragment(), RefreshScrollTopInte
|
|||
private lateinit var pagerAdapter: SupportTabsAdapter
|
||||
override val toolbar: Toolbar
|
||||
get() = toolbarContainer.toolbar
|
||||
private var mControlBarHeight: Int = 0
|
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
|
@ -103,15 +101,6 @@ abstract class AbsToolbarTabPagesFragment : BaseFragment(), RefreshScrollTopInte
|
|||
return inflater!!.inflate(R.layout.fragment_toolbar_tab_pages, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val host = host
|
||||
if (host is AppCompatActivity) {
|
||||
host.setSupportActionBar(toolbar)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
val o = pagerAdapter.instantiateItem(viewPager, viewPager.currentItem)
|
||||
if (o is Fragment) {
|
||||
|
@ -150,7 +139,6 @@ abstract class AbsToolbarTabPagesFragment : BaseFragment(), RefreshScrollTopInte
|
|||
}
|
||||
|
||||
override fun onControlBarOffsetChanged(activity: IControlBarActivity, offset: Float) {
|
||||
mControlBarHeight = activity.controlBarHeight
|
||||
}
|
||||
|
||||
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
|
||||
|
@ -212,14 +200,14 @@ abstract class AbsToolbarTabPagesFragment : BaseFragment(), RefreshScrollTopInte
|
|||
}
|
||||
|
||||
override fun isKeyboardShortcutHandled(handler: KeyboardShortcutsHandler, keyCode: Int,
|
||||
event: KeyEvent, metaState: Int): Boolean {
|
||||
event: KeyEvent, metaState: Int): Boolean {
|
||||
if (isFragmentKeyboardShortcutHandled(handler, keyCode, event, metaState)) return true
|
||||
val action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event, metaState)
|
||||
return ACTION_NAVIGATION_PREVIOUS_TAB == action || ACTION_NAVIGATION_NEXT_TAB == action
|
||||
}
|
||||
|
||||
override fun handleKeyboardShortcutRepeat(handler: KeyboardShortcutsHandler, keyCode: Int,
|
||||
repeatCount: Int, event: KeyEvent, metaState: Int): Boolean {
|
||||
repeatCount: Int, event: KeyEvent, metaState: Int): Boolean {
|
||||
return handleFragmentKeyboardShortcutRepeat(handler, keyCode, repeatCount, event, metaState)
|
||||
}
|
||||
|
||||
|
@ -227,7 +215,7 @@ abstract class AbsToolbarTabPagesFragment : BaseFragment(), RefreshScrollTopInte
|
|||
get() = currentVisibleFragment
|
||||
|
||||
private fun handleFragmentKeyboardShortcutRepeat(handler: KeyboardShortcutsHandler, keyCode: Int,
|
||||
repeatCount: Int, event: KeyEvent, metaState: Int): Boolean {
|
||||
repeatCount: Int, event: KeyEvent, metaState: Int): Boolean {
|
||||
val fragment = keyboardShortcutRecipient
|
||||
if (fragment is KeyboardShortcutCallback) {
|
||||
return fragment.handleKeyboardShortcutRepeat(handler, keyCode,
|
||||
|
@ -237,7 +225,7 @@ abstract class AbsToolbarTabPagesFragment : BaseFragment(), RefreshScrollTopInte
|
|||
}
|
||||
|
||||
private fun handleFragmentKeyboardShortcutSingle(handler: KeyboardShortcutsHandler, keyCode: Int,
|
||||
event: KeyEvent, metaState: Int): Boolean {
|
||||
event: KeyEvent, metaState: Int): Boolean {
|
||||
val fragment = keyboardShortcutRecipient
|
||||
if (fragment is KeyboardShortcutCallback) {
|
||||
return fragment.handleKeyboardShortcutSingle(handler, keyCode,
|
||||
|
@ -247,7 +235,7 @@ abstract class AbsToolbarTabPagesFragment : BaseFragment(), RefreshScrollTopInte
|
|||
}
|
||||
|
||||
private fun isFragmentKeyboardShortcutHandled(handler: KeyboardShortcutsHandler, keyCode: Int,
|
||||
event: KeyEvent, metaState: Int): Boolean {
|
||||
event: KeyEvent, metaState: Int): Boolean {
|
||||
val fragment = keyboardShortcutRecipient
|
||||
if (fragment is KeyboardShortcutCallback) {
|
||||
return fragment.isKeyboardShortcutHandled(handler, keyCode,
|
||||
|
|
|
@ -1044,14 +1044,6 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||
return true
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
val host = host
|
||||
if (host is AppCompatActivity) {
|
||||
host.setSupportActionBar(toolbar)
|
||||
}
|
||||
}
|
||||
|
||||
override fun handleKeyboardShortcutSingle(handler: KeyboardShortcutsHandler, keyCode: Int, event: KeyEvent, metaState: Int): Boolean {
|
||||
if (handleFragmentKeyboardShortcutSingle(handler, keyCode, event, metaState)) return true
|
||||
val action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event, metaState)
|
||||
|
|
|
@ -25,16 +25,19 @@ import android.content.Context
|
|||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.support.v4.app.FragmentActivity
|
||||
import android.support.v4.app.LoaderManager
|
||||
import android.support.v4.content.Loader
|
||||
import android.support.v7.widget.FixedLinearLayoutManager
|
||||
import android.support.v7.widget.LinearLayoutManager
|
||||
import android.support.v7.widget.RecyclerView
|
||||
import android.support.v7.widget.Toolbar
|
||||
import android.view.*
|
||||
import android.widget.Toast
|
||||
import com.squareup.otto.Subscribe
|
||||
import kotlinx.android.synthetic.main.activity_premium_dashboard.*
|
||||
import kotlinx.android.synthetic.main.fragment_messages_conversation.*
|
||||
import kotlinx.android.synthetic.main.fragment_messages_conversation.view.*
|
||||
import org.mariotaku.abstask.library.TaskStarter
|
||||
import org.mariotaku.kpreferences.get
|
||||
import org.mariotaku.ktextension.empty
|
||||
|
@ -59,6 +62,7 @@ import org.mariotaku.twidere.extension.model.isOfficial
|
|||
import org.mariotaku.twidere.extension.model.readOnly
|
||||
import org.mariotaku.twidere.fragment.AbsContentListRecyclerViewFragment
|
||||
import org.mariotaku.twidere.fragment.EditAltTextDialogFragment
|
||||
import org.mariotaku.twidere.fragment.iface.IToolBarSupportFragment
|
||||
import org.mariotaku.twidere.loader.ObjectCursorLoader
|
||||
import org.mariotaku.twidere.model.*
|
||||
import org.mariotaku.twidere.model.ParcelableMessageConversation.ConversationType
|
||||
|
@ -81,7 +85,8 @@ import org.mariotaku.twidere.view.holder.compose.MediaPreviewViewHolder
|
|||
import java.util.concurrent.atomic.AtomicReference
|
||||
|
||||
class MessagesConversationFragment : AbsContentListRecyclerViewFragment<MessagesConversationAdapter>(),
|
||||
LoaderManager.LoaderCallbacks<List<ParcelableMessage>?>, EditAltTextDialogFragment.EditAltTextCallback {
|
||||
IToolBarSupportFragment, LoaderManager.LoaderCallbacks<List<ParcelableMessage>?>,
|
||||
EditAltTextDialogFragment.EditAltTextCallback {
|
||||
private lateinit var mediaPreviewAdapter: MediaPreviewAdapter
|
||||
|
||||
private val accountKey: UserKey get() = arguments.getParcelable(EXTRA_ACCOUNT_KEY)
|
||||
|
@ -103,6 +108,14 @@ class MessagesConversationFragment : AbsContentListRecyclerViewFragment<Messages
|
|||
override val reachingStart: Boolean
|
||||
get() = super.reachingEnd
|
||||
|
||||
override val controlBarHeight: Int
|
||||
get() = toolbar.height
|
||||
|
||||
override var controlBarOffset: Float = 1f
|
||||
|
||||
override val toolbar: Toolbar
|
||||
get() = conversationContainer.toolbar
|
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
setHasOptionsMenu(true)
|
||||
|
@ -190,6 +203,10 @@ class MessagesConversationFragment : AbsContentListRecyclerViewFragment<Messages
|
|||
return inflater.inflate(R.layout.fragment_messages_conversation, container, false)
|
||||
}
|
||||
|
||||
override fun setupWindow(activity: FragmentActivity): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
override fun onCreateLoader(id: Int, args: Bundle?): Loader<List<ParcelableMessage>?> {
|
||||
return ConversationLoader(context, accountKey, conversationId)
|
||||
}
|
||||
|
@ -415,9 +432,9 @@ class MessagesConversationFragment : AbsContentListRecyclerViewFragment<Messages
|
|||
activity.title = conversation.getConversationName(context, userColorNameManager,
|
||||
preferences[nameFirstKey]).first
|
||||
val readOnly = conversation.readOnly
|
||||
addMedia.isEnabled = readOnly
|
||||
sendMessage.isEnabled = readOnly
|
||||
editText.isEnabled = readOnly
|
||||
addMedia.isEnabled = !readOnly
|
||||
sendMessage.isEnabled = !readOnly
|
||||
editText.isEnabled = !readOnly
|
||||
}
|
||||
|
||||
internal class AddMediaTask(
|
||||
|
|
|
@ -29,7 +29,6 @@ import org.mariotaku.twidere.TwidereConstants.*
|
|||
import org.mariotaku.twidere.model.UserKey
|
||||
import org.mariotaku.twidere.provider.TwidereDataStore.*
|
||||
import org.mariotaku.twidere.util.SQLiteDatabaseWrapper
|
||||
import org.mariotaku.twidere.util.TwidereQueryBuilder
|
||||
import org.mariotaku.twidere.util.UserColorNameManager
|
||||
import org.mariotaku.twidere.util.Utils
|
||||
import java.util.regex.Pattern
|
||||
|
|
|
@ -683,7 +683,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Quiciabes yá guardesti esta gueta</string>
|
||||
<string name="scheduled_statuses">Tuits planificaos</string>
|
||||
<string name="scrapyard">Bagul d\'axustes</string>
|
||||
<string name="search">Guetar</string>
|
||||
<string name="action_search">Guetar</string>
|
||||
<string name="search_hint">Gueta tuits o usuarios</string>
|
||||
<string name="search_hint_users">Guetar usuarios</string>
|
||||
<string name="search_statuses">Guetar tuits</string>
|
||||
|
|
|
@ -612,7 +612,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Potser ja heu desat aquesta cerca</string>
|
||||
<string name="scheduled_statuses">Piulades programades</string>
|
||||
<string name="scrapyard">Caixa d\'eines</string>
|
||||
<string name="search">Cerca</string>
|
||||
<string name="action_search">Cerca</string>
|
||||
<string name="search_hint">Cerca piulades o usuaris</string>
|
||||
<string name="search_statuses">Cerca Piulades</string>
|
||||
<string name="search_type_statuses">Piulades</string>
|
||||
|
|
|
@ -295,7 +295,7 @@
|
|||
<string name="same_oauth_signing_url">Použít stejnou adresu URL pro přihlášení OAuth</string>
|
||||
<string name="save_to_gallery">Uložit do galerie</string>
|
||||
<string name="saved_searches">Uložená hledání</string>
|
||||
<string name="search">Hledat</string>
|
||||
<string name="action_search">Hledat</string>
|
||||
<string name="search_hint">Hledat Tweety nebo uživatele</string>
|
||||
<string name="search_statuses">Hledat Tweety</string>
|
||||
<string name="search_type_statuses">Tweety</string>
|
||||
|
|
|
@ -210,7 +210,7 @@
|
|||
<string name="retweeted_by_name_with_count">Retweetet af <xliff:g id="user_name">%1$s</xliff:g> og <xliff:g id="retweet_count">%2$d</xliff:g> andre</string>
|
||||
<string name="ringtone">Ringetone</string>
|
||||
<string name="saved_searches">Gemte søgninger</string>
|
||||
<string name="search">Søg</string>
|
||||
<string name="action_search">Søg</string>
|
||||
<string name="search_hint">Søg tweets eller brugere</string>
|
||||
<string name="search_statuses">Søg i tweets</string>
|
||||
<string name="search_type_statuses">Tweets</string>
|
||||
|
|
|
@ -714,7 +714,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Vielleicht hast du diese Suche bereits gespeichert</string>
|
||||
<string name="scheduled_statuses">Geplante Tweets</string>
|
||||
<string name="scrapyard">Schrottplatz</string>
|
||||
<string name="search">Suchen</string>
|
||||
<string name="action_search">Suchen</string>
|
||||
<string name="search_hint">Tweets oder Benutzer suchen</string>
|
||||
<string name="search_hint_users">Benutzer suchen</string>
|
||||
<string name="search_statuses">Tweets suchen</string>
|
||||
|
|
|
@ -109,7 +109,7 @@
|
|||
<string name="retweeted_by_name">Έγινε ρετουϊτ από <xliff:g id="user_name">%s</xliff:g></string>
|
||||
<string name="retweeted_by_name_with_count">Έγινε ρετουϊτ από <xliff:g id="user_name">%1$s</xliff:g> και <xliff:g id="retweet_count">%2$d</xliff:g> άλλους</string>
|
||||
<string name="same_oauth_signing_url">Χρησιμοποίησε ίδιο URL για εισαγωγή OAuth</string>
|
||||
<string name="search">Αναζήτηση</string>
|
||||
<string name="action_search">Αναζήτηση</string>
|
||||
<string name="search_type_statuses">Tweets</string>
|
||||
<string name="search_type_users">Χρήστες</string>
|
||||
<string name="select_account">Επιλογή λογαριασμού</string>
|
||||
|
|
|
@ -705,7 +705,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Quizá ya hayas guardado esta búsqueda</string>
|
||||
<string name="scheduled_statuses">Planificación de tweets</string>
|
||||
<string name="scrapyard">Más ajustes</string>
|
||||
<string name="search">Búsqueda</string>
|
||||
<string name="action_search">Búsqueda</string>
|
||||
<string name="search_hint">Búsqueda de tweets o usuarios</string>
|
||||
<string name="search_hint_users">Buscar usuarios</string>
|
||||
<string name="search_statuses">Buscar Tweets</string>
|
||||
|
|
|
@ -633,7 +633,7 @@
|
|||
<string name="saved_searches_already_saved_hint">احتمالاً از پیش این جستوجو را ذخیره کردهاید</string>
|
||||
<string name="scheduled_statuses">تویتتهای زمانبندی شده</string>
|
||||
<string name="scrapyard">ظاهر</string>
|
||||
<string name="search">جستوجو</string>
|
||||
<string name="action_search">جستوجو</string>
|
||||
<string name="search_hint">جستوجوی توییتها یا کاربران</string>
|
||||
<string name="search_statuses">جستوجوی توییتها</string>
|
||||
<string name="search_type_statuses">توییتها</string>
|
||||
|
|
|
@ -602,7 +602,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Kenties olet jo tallentanut tämän haun</string>
|
||||
<string name="scheduled_statuses">Ajoitetut twiitit</string>
|
||||
<string name="scrapyard">Romuvarasto</string>
|
||||
<string name="search">Hae</string>
|
||||
<string name="action_search">Hae</string>
|
||||
<string name="search_hint">Hae twiittejä tai käyttäjiä</string>
|
||||
<string name="search_statuses">Hae twiittejä</string>
|
||||
<string name="search_type_statuses">Twiitit</string>
|
||||
|
|
|
@ -714,7 +714,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Vous avez certainement déjà enregistré cette recherche</string>
|
||||
<string name="scheduled_statuses">Tweets programmés</string>
|
||||
<string name="scrapyard">Divers</string>
|
||||
<string name="search">Rechercher</string>
|
||||
<string name="action_search">Rechercher</string>
|
||||
<string name="search_hint">Rechercher des tweets ou des utilisateurs</string>
|
||||
<string name="search_hint_users">Rechercher des utilisateurs</string>
|
||||
<string name="search_statuses">Rechercher des tweets</string>
|
||||
|
|
|
@ -611,7 +611,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Se cadra xa tes gardada esta busca</string>
|
||||
<string name="scheduled_statuses">Chíos programados</string>
|
||||
<string name="scrapyard">Scrapyard</string>
|
||||
<string name="search">Buscar</string>
|
||||
<string name="action_search">Buscar</string>
|
||||
<string name="search_hint">Buscar chíos ou usuarios</string>
|
||||
<string name="search_statuses">Buscar chíos</string>
|
||||
<string name="search_type_statuses">Chíos</string>
|
||||
|
|
|
@ -501,7 +501,7 @@
|
|||
<string name="saved_searches">Spremljene pretrage</string>
|
||||
<string name="scheduled_statuses">Planirani tweetovi</string>
|
||||
<string name="scrapyard">Reciklažno dvorište</string>
|
||||
<string name="search">Pretraži</string>
|
||||
<string name="action_search">Pretraži</string>
|
||||
<string name="search_hint">Pretraži tweetove ili korisnike</string>
|
||||
<string name="search_statuses">Pretraži Tweetove</string>
|
||||
<string name="search_type_statuses">Tweetovi</string>
|
||||
|
|
|
@ -613,7 +613,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Talán egyszer már mentetted ezt a keresést</string>
|
||||
<string name="scheduled_statuses">Időzített tweet-ek</string>
|
||||
<string name="scrapyard">Szemetes</string>
|
||||
<string name="search">Keresés</string>
|
||||
<string name="action_search">Keresés</string>
|
||||
<string name="search_hint">Keresés tweetek és felhasználók között</string>
|
||||
<string name="search_statuses">Tweetek keresése</string>
|
||||
<string name="search_type_statuses">Tweet</string>
|
||||
|
|
|
@ -688,7 +688,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Mungkin anda sudah menyimpan pencarian ini</string>
|
||||
<string name="scheduled_statuses">Tweet terjadwal</string>
|
||||
<string name="scrapyard">Scrapyard</string>
|
||||
<string name="search">Pencarian</string>
|
||||
<string name="action_search">Pencarian</string>
|
||||
<string name="search_hint">Pencarian tweets atau pengguna</string>
|
||||
<string name="search_statuses">Cari Kicauan</string>
|
||||
<string name="search_type_statuses">Kicauan</string>
|
||||
|
|
|
@ -601,7 +601,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Forse hai già salvato questa ricerca</string>
|
||||
<string name="scheduled_statuses">Tweet schedulati</string>
|
||||
<string name="scrapyard">Discarica</string>
|
||||
<string name="search">Cerca</string>
|
||||
<string name="action_search">Cerca</string>
|
||||
<string name="search_hint">Cerca tweets o utenti</string>
|
||||
<string name="search_statuses">Ricerca tweet</string>
|
||||
<string name="search_type_statuses">Tweet</string>
|
||||
|
|
|
@ -716,7 +716,7 @@
|
|||
<string name="saved_searches_already_saved_hint">おそらく、既にこの検索は保存されています</string>
|
||||
<string name="scheduled_statuses">定期ツイート</string>
|
||||
<string name="scrapyard">ゴミ置き場</string>
|
||||
<string name="search">検索</string>
|
||||
<string name="action_search">検索</string>
|
||||
<string name="search_hint">ツイートかユーザーの検索</string>
|
||||
<string name="search_hint_users">ユーザー検索</string>
|
||||
<string name="search_statuses">ツイートの検索</string>
|
||||
|
|
|
@ -618,7 +618,7 @@
|
|||
<string name="saved_searches_already_saved_hint">이 검색을 이미 저장한 것 같습니다.</string>
|
||||
<string name="scheduled_statuses">예약 트윗</string>
|
||||
<string name="scrapyard">폐기된 설정</string>
|
||||
<string name="search">검색</string>
|
||||
<string name="action_search">검색</string>
|
||||
<string name="search_hint">트윗이나 사용자 검색</string>
|
||||
<string name="search_statuses">트윗 검색</string>
|
||||
<string name="search_type_statuses">트윗</string>
|
||||
|
|
|
@ -620,7 +620,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Misschien had je deze zoekopdracht al bewaard</string>
|
||||
<string name="scheduled_statuses">Ingeplande tweets</string>
|
||||
<string name="scrapyard">Schroothoop</string>
|
||||
<string name="search">Zoeken</string>
|
||||
<string name="action_search">Zoeken</string>
|
||||
<string name="search_hint">Zoek tweets of gebruikers</string>
|
||||
<string name="search_statuses">Zoek Tweets</string>
|
||||
<string name="search_type_statuses">Tweets</string>
|
||||
|
|
|
@ -535,7 +535,7 @@
|
|||
<string name="saved_searches">Lagrede søk</string>
|
||||
<string name="scheduled_statuses">Planlagte tweets</string>
|
||||
<string name="scrapyard">Diverse</string>
|
||||
<string name="search">Søk</string>
|
||||
<string name="action_search">Søk</string>
|
||||
<string name="search_hint">Søk tweets eller brukere</string>
|
||||
<string name="search_statuses">Søk tweets</string>
|
||||
<string name="search_type_statuses">Tweets</string>
|
||||
|
|
|
@ -436,7 +436,7 @@
|
|||
<string name="same_oauth_signing_url">Użyj tego samego adresu do logowania przez OAuth</string>
|
||||
<string name="save_to_gallery">Zapisz w galerii</string>
|
||||
<string name="saved_searches">Zapisane wyniki wyszukiwania</string>
|
||||
<string name="search">Szukaj</string>
|
||||
<string name="action_search">Szukaj</string>
|
||||
<string name="search_hint">Szukaj tweetów lub użytkowników</string>
|
||||
<string name="search_statuses">Szukaj tweetów</string>
|
||||
<string name="search_type_statuses">Tweety</string>
|
||||
|
|
|
@ -624,7 +624,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Talvez você já tenha salvo esta busca</string>
|
||||
<string name="scheduled_statuses">Tweets agendados</string>
|
||||
<string name="scrapyard">Interface</string>
|
||||
<string name="search">Procurar</string>
|
||||
<string name="action_search">Procurar</string>
|
||||
<string name="search_hint">Procurar por tweets ou usuários</string>
|
||||
<string name="search_statuses">Buscar Tweets</string>
|
||||
<string name="search_type_statuses">Tweets</string>
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
<!-- Normally you don't need to translate this -->
|
||||
<string name="provider_default">Twidere</string>
|
||||
<!-- Fanfou is a Chinese micro blogging website http://fanfou.com/ -->
|
||||
<string name="search">Căutare</string>
|
||||
<string name="action_search">Căutare</string>
|
||||
<string name="settings">Configurări</string>
|
||||
<string name="sign_in">Autentificare</string>
|
||||
<string name="sign_up">Inregistrare</string>
|
||||
|
|
|
@ -691,7 +691,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Возможно, вы уже сохранили этот поиск</string>
|
||||
<string name="scheduled_statuses">Запланированные твиты</string>
|
||||
<string name="scrapyard">Прочие настройки вида</string>
|
||||
<string name="search">Поиск</string>
|
||||
<string name="action_search">Поиск</string>
|
||||
<string name="search_hint">Поиск твитов или пользователей</string>
|
||||
<string name="search_statuses">Найти твиты</string>
|
||||
<string name="search_type_statuses">Твиты</string>
|
||||
|
|
|
@ -367,7 +367,7 @@
|
|||
<string name="safety">Säkerhet</string>
|
||||
<string name="same_oauth_signing_url">Använd samma URL för OAuth-signering</string>
|
||||
<string name="saved_searches">Sparade sökningar</string>
|
||||
<string name="search">Sök</string>
|
||||
<string name="action_search">Sök</string>
|
||||
<string name="search_hint">Sök efter tweets eller användare</string>
|
||||
<string name="search_statuses">Sök tweets</string>
|
||||
<string name="search_type_statuses">Tweets</string>
|
||||
|
|
|
@ -622,7 +622,7 @@
|
|||
<string name="saved_searches_already_saved_hint">คุณได้บันทึกผลการค้นหานี้ไปก่อนแล้ว</string>
|
||||
<string name="scheduled_statuses">ทวีตตั้งเวลาส่ง</string>
|
||||
<string name="scrapyard">กองขยะ</string>
|
||||
<string name="search">ค้นหา</string>
|
||||
<string name="action_search">ค้นหา</string>
|
||||
<string name="search_hint">ค้นหาทวีตหรือผู้ใช้</string>
|
||||
<string name="search_statuses">ค้นหาทวีต</string>
|
||||
<string name="search_type_statuses">ทวีต</string>
|
||||
|
|
|
@ -621,7 +621,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Belki de zaten bu arama kaydedilmiştir</string>
|
||||
<string name="scheduled_statuses">Zamanlanmış tweetler</string>
|
||||
<string name="scrapyard">Scrapyard</string>
|
||||
<string name="search">Ara</string>
|
||||
<string name="action_search">Ara</string>
|
||||
<string name="search_hint">Tweet yada kullanıcı ara</string>
|
||||
<string name="search_statuses">Tweet/ler ara</string>
|
||||
<string name="search_type_statuses">Tweetler</string>
|
||||
|
|
|
@ -622,7 +622,7 @@
|
|||
<string name="saved_searches_already_saved_hint">Мабуть ви вже зберегли цей пошуковий запит</string>
|
||||
<string name="scheduled_statuses">Заплановані твіти</string>
|
||||
<string name="scrapyard">Смітник</string>
|
||||
<string name="search">Пошук</string>
|
||||
<string name="action_search">Пошук</string>
|
||||
<string name="search_hint">Пошук твітів або користувачів</string>
|
||||
<string name="search_statuses">Пошук твітів</string>
|
||||
<string name="search_type_statuses">Твіти</string>
|
||||
|
|
|
@ -718,7 +718,7 @@
|
|||
<string name="saved_searches_already_saved_hint">您可能已经保存过这个搜索了</string>
|
||||
<string name="scheduled_statuses">被排期推文</string>
|
||||
<string name="scrapyard">垃圾场</string>
|
||||
<string name="search">搜索</string>
|
||||
<string name="action_search">搜索</string>
|
||||
<string name="search_hint">搜索推文或用户</string>
|
||||
<string name="search_hint_users">搜索用户</string>
|
||||
<string name="search_statuses">搜索推文</string>
|
||||
|
|
|
@ -714,7 +714,7 @@
|
|||
<string name="saved_searches_already_saved_hint">可能您已經保存了這個搜尋</string>
|
||||
<string name="scheduled_statuses">被排期推文</string>
|
||||
<string name="scrapyard">垃圾場</string>
|
||||
<string name="search">搜尋</string>
|
||||
<string name="action_search">搜尋</string>
|
||||
<string name="search_hint">搜尋推文或使用者</string>
|
||||
<string name="search_hint_users">搜尋使用者</string>
|
||||
<string name="search_statuses">搜尋推文</string>
|
||||
|
|
|
@ -714,7 +714,7 @@
|
|||
<string name="saved_searches_already_saved_hint">可能您已經保存了這個搜尋</string>
|
||||
<string name="scheduled_statuses">被排期推文</string>
|
||||
<string name="scrapyard">垃圾場</string>
|
||||
<string name="search">搜尋</string>
|
||||
<string name="action_search">搜尋</string>
|
||||
<string name="search_hint">搜尋推文或使用者</string>
|
||||
<string name="search_hint_users">搜尋使用者</string>
|
||||
<string name="search_statuses">搜尋推文</string>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
android:layout_weight="0"
|
||||
android:background="?selectableItemBackground"
|
||||
android:color="?menuIconColor"
|
||||
android:contentDescription="@string/search"
|
||||
android:contentDescription="@string/action_search"
|
||||
android:src="@drawable/ic_action_search"
|
||||
tools:tint="?menuIconColor"/>
|
||||
</LinearLayout>
|
||||
|
|
|
@ -32,7 +32,8 @@
|
|||
layout="@layout/fragment_content_recyclerview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@+id/inputPanel"/>
|
||||
android:layout_above="@+id/inputPanel"
|
||||
android:layout_below="@+id/toolbar"/>
|
||||
|
||||
<View
|
||||
android:id="@+id/inputPanelShadowCompat"
|
||||
|
@ -157,4 +158,21 @@
|
|||
</org.mariotaku.messagebubbleview.library.MessageBubbleView>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?actionBarSize"
|
||||
android:layout_alignParentTop="true"
|
||||
android:background="?colorToolbar"
|
||||
android:elevation="@dimen/toolbar_elevation"
|
||||
app:popupTheme="?actionBarPopupTheme"
|
||||
tools:elevation="0dp"/>
|
||||
|
||||
<View
|
||||
android:id="@+id/windowOverlay"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/toolbar"
|
||||
android:background="?android:windowContentOverlay"/>
|
||||
</RelativeLayout>
|
|
@ -61,7 +61,7 @@
|
|||
android:layout_width="@dimen/element_size_normal"
|
||||
android:layout_height="@dimen/element_size_normal"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:contentDescription="@string/search"
|
||||
android:contentDescription="@string/action_search"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/ic_action_search"
|
||||
app:backgroundTintMode="src_atop"/>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<item
|
||||
android:id="@id/search"
|
||||
android:icon="@drawable/ic_action_search"
|
||||
android:title="@string/search"/>
|
||||
android:title="@string/action_search"/>
|
||||
<item
|
||||
android:id="@id/interactions"
|
||||
android:icon="@drawable/ic_action_notification"
|
||||
|
|
|
@ -23,6 +23,11 @@
|
|||
<item
|
||||
android:id="@+id/info"
|
||||
android:icon="@drawable/ic_action_info"
|
||||
android:title="@string/action_conversation_info"
|
||||
app:showAsAction="always"/>
|
||||
android:title="@string/action_conversation_info"/>
|
||||
<item
|
||||
android:id="@+id/search"
|
||||
android:enabled="@bool/debug"
|
||||
android:icon="@drawable/ic_action_search"
|
||||
android:title="@string/action_search"
|
||||
android:visible="@bool/debug"/>
|
||||
</menu>
|
|
@ -90,6 +90,7 @@
|
|||
<!-- [verb] Save settings/files etc. -->
|
||||
<string name="action_save">Save</string>
|
||||
<string name="action_saving_search">saving search</string>
|
||||
<string name="action_search">Search</string>
|
||||
<string name="action_select_all">Select all</string>
|
||||
<string name="action_select_none">Select none</string>
|
||||
<string name="action_select_user">Select user</string>
|
||||
|
@ -942,7 +943,6 @@
|
|||
|
||||
<string name="scrapyard">Scrapyard</string>
|
||||
|
||||
<string name="search">Search</string>
|
||||
<string name="search_hint">Search tweets or users</string>
|
||||
<string name="search_hint_users">Search users</string>
|
||||
<string name="search_statuses">Search Tweets</string>
|
||||
|
@ -1115,6 +1115,7 @@
|
|||
<string name="title_nicknames">Nicknames</string>
|
||||
<string name="title_open_source_license">Open source license</string>
|
||||
<string name="title_premium_features_name">Twidere ∞</string>
|
||||
<string name="title_search">Search</string>
|
||||
<string name="title_select_users">Select users</string>
|
||||
<string name="title_set_nickname">Set nickname</string>
|
||||
<string name="title_status">Tweet</string>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
android:title="@string/action_compose"/>
|
||||
<org.mariotaku.twidere.preference.KeyboardShortcutPreference
|
||||
android:action="search"
|
||||
android:title="@string/search"/>
|
||||
android:title="@string/action_search"/>
|
||||
<org.mariotaku.twidere.preference.KeyboardShortcutPreference
|
||||
android:action="message"
|
||||
android:title="@string/title_direct_messages"/>
|
||||
|
|
Loading…
Reference in New Issue