Merge branch 'dev' into strings-squashed
@ -108,23 +108,23 @@ class HomeActivityTests {
|
||||
PermissionGranter.allowPermissionsIfNeeded(Manifest.permission.POST_NOTIFICATIONS)
|
||||
}
|
||||
|
||||
|
||||
private fun goToMyChat() {
|
||||
onView(withId(R.id.newConversationButton)).perform(ViewActions.click())
|
||||
onView(withId(R.id.createPrivateChatButton)).perform(ViewActions.click())
|
||||
// new chat
|
||||
onView(withId(R.id.publicKeyEditText)).perform(ViewActions.closeSoftKeyboard())
|
||||
onView(withId(R.id.copyButton)).perform(ViewActions.click())
|
||||
val context = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
lateinit var copied: String
|
||||
InstrumentationRegistry.getInstrumentation().runOnMainSync {
|
||||
val clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
copied = clipboardManager.primaryClip!!.getItemAt(0).text.toString()
|
||||
}
|
||||
onView(withId(R.id.publicKeyEditText)).perform(ViewActions.typeText(copied))
|
||||
onView(withId(R.id.publicKeyEditText)).perform(ViewActions.closeSoftKeyboard())
|
||||
onView(withId(R.id.createPrivateChatButton)).perform(ViewActions.click())
|
||||
}
|
||||
// ACL - COMMENTED OUT BECAUSE REFERENCES DELETED FRAGMENT `EnterPublicKeyFragment.kt` - which itself used R.id.<stuff_which_no_longer_exists>
|
||||
// private fun goToMyChat() {
|
||||
// onView(withId(R.id.newConversationButton)).perform(ViewActions.click())
|
||||
// onView(withId(R.id.createPrivateChatButton)).perform(ViewActions.click())
|
||||
// // new chat
|
||||
// onView(withId(R.id.publicKeyEditText)).perform(ViewActions.closeSoftKeyboard())
|
||||
// onView(withId(R.id.copyButton)).perform(ViewActions.click())
|
||||
// val context = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
// lateinit var copied: String
|
||||
// InstrumentationRegistry.getInstrumentation().runOnMainSync {
|
||||
// val clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
// copied = clipboardManager.primaryClip!!.getItemAt(0).text.toString()
|
||||
// }
|
||||
// onView(withId(R.id.publicKeyEditText)).perform(ViewActions.typeText(copied))
|
||||
// onView(withId(R.id.publicKeyEditText)).perform(ViewActions.closeSoftKeyboard())
|
||||
// onView(withId(R.id.createPrivateChatButton)).perform(ViewActions.click())
|
||||
// }
|
||||
|
||||
@Test
|
||||
fun testLaunches_dismiss_seedView() {
|
||||
@ -147,42 +147,44 @@ class HomeActivityTests {
|
||||
onView(withId(R.id.seedReminderView)).check(matches(not(isDisplayed())))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testChat_withSelf() {
|
||||
setupLoggedInState()
|
||||
goToMyChat()
|
||||
TextSecurePreferences.setLinkPreviewsEnabled(context, true)
|
||||
sendMessage("howdy")
|
||||
sendMessage("test")
|
||||
// tests url rewriter doesn't crash
|
||||
sendMessage("https://www.getsession.org?random_query_parameter=testtesttesttesttesttesttesttest&other_query_parameter=testtesttesttesttesttesttesttest")
|
||||
sendMessage("https://www.ámazon.com")
|
||||
}
|
||||
// ACL - COMMENTED OUT BECAUSE REFERENCES DELETED FRAGMENT `EnterPublicKeyFragment.kt` - which itself used R.id.<stuff_which_no_longer_exists>
|
||||
// @Test
|
||||
// fun testChat_withSelf() {
|
||||
// setupLoggedInState()
|
||||
// goToMyChat()
|
||||
// TextSecurePreferences.setLinkPreviewsEnabled(context, true)
|
||||
// sendMessage("howdy")
|
||||
// sendMessage("test")
|
||||
// // tests url rewriter doesn't crash
|
||||
// sendMessage("https://www.getsession.org?random_query_parameter=testtesttesttesttesttesttesttest&other_query_parameter=testtesttesttesttesttesttesttest")
|
||||
// sendMessage("https://www.ámazon.com")
|
||||
// }
|
||||
|
||||
@Test
|
||||
fun testChat_displaysCorrectUrl() {
|
||||
setupLoggedInState()
|
||||
goToMyChat()
|
||||
TextSecurePreferences.setLinkPreviewsEnabled(InstrumentationRegistry.getInstrumentation().targetContext, true)
|
||||
// given the link url text
|
||||
val url = "https://www.ámazon.com"
|
||||
sendMessage(url, LinkPreview(url, "amazon", Optional.absent()))
|
||||
|
||||
// when the URL span is clicked
|
||||
onView(withSubstring(url)).perform(ViewActions.click())
|
||||
|
||||
// then the URL dialog should be displayed with a known punycode url
|
||||
val amazonPuny = "https://www.xn--mazon-wqa.com/"
|
||||
|
||||
// Substitute the URL into our string
|
||||
val c = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
val dialogPromptText = Phrase.from(c, R.string.urlOpenDescription)
|
||||
.put(URL_KEY, amazonPuny)
|
||||
.format().toString()
|
||||
|
||||
onView(isRoot()).perform(waitFor(1000)) // no other way for this to work apparently
|
||||
onView(withText(dialogPromptText)).check(matches(isDisplayed()))
|
||||
}
|
||||
// ACL - COMMENTED OUT BECAUSE REFERENCES DELETED FRAGMENT `EnterPublicKeyFragment.kt` - which itself used R.id.<stuff_which_no_longer_exists>
|
||||
// @Test
|
||||
// fun testChat_displaysCorrectUrl() {
|
||||
// setupLoggedInState()
|
||||
// goToMyChat()
|
||||
// TextSecurePreferences.setLinkPreviewsEnabled(InstrumentationRegistry.getInstrumentation().targetContext, true)
|
||||
// // given the link url text
|
||||
// val url = "https://www.ámazon.com"
|
||||
// sendMessage(url, LinkPreview(url, "amazon", Optional.absent()))
|
||||
//
|
||||
// // when the URL span is clicked
|
||||
// onView(withSubstring(url)).perform(ViewActions.click())
|
||||
//
|
||||
// // then the URL dialog should be displayed with a known punycode url
|
||||
// val amazonPuny = "https://www.xn--mazon-wqa.com/"
|
||||
//
|
||||
// // Substitute the URL into our string
|
||||
// val c = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
// val dialogPromptText = Phrase.from(c, R.string.urlOpenDescription)
|
||||
// .put(URL_KEY, amazonPuny)
|
||||
// .format().toString()
|
||||
//
|
||||
// onView(isRoot()).perform(waitFor(1000)) // no other way for this to work apparently
|
||||
// onView(withText(dialogPromptText)).check(matches(isDisplayed()))
|
||||
// }
|
||||
|
||||
/**
|
||||
* Perform action of waiting for a specific time.
|
||||
|
@ -1,101 +0,0 @@
|
||||
package org.thoughtcrime.securesms.dms
|
||||
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.text.InputType
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.widget.Toast
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.widget.addTextChangedListener
|
||||
import androidx.fragment.app.Fragment
|
||||
import network.loki.messenger.R
|
||||
import network.loki.messenger.databinding.FragmentEnterPublicKeyBinding
|
||||
import org.session.libsession.utilities.TextSecurePreferences
|
||||
import org.thoughtcrime.securesms.util.QRCodeUtilities
|
||||
import org.thoughtcrime.securesms.util.hideKeyboard
|
||||
import org.thoughtcrime.securesms.util.toPx
|
||||
|
||||
class EnterPublicKeyFragment : Fragment() {
|
||||
private lateinit var binding: FragmentEnterPublicKeyBinding
|
||||
|
||||
var delegate: EnterPublicKeyDelegate? = null
|
||||
|
||||
private val hexEncodedPublicKey: String
|
||||
get() {
|
||||
return TextSecurePreferences.getLocalNumber(requireContext())!!
|
||||
}
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
||||
binding = FragmentEnterPublicKeyBinding.inflate(inflater, container, false)
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
with(binding) {
|
||||
publicKeyEditText.imeOptions = EditorInfo.IME_ACTION_DONE or 16777216 // Always use incognito keyboard
|
||||
publicKeyEditText.setRawInputType(InputType.TYPE_CLASS_TEXT)
|
||||
publicKeyEditText.setOnEditorActionListener { v, actionID, _ ->
|
||||
if (actionID == EditorInfo.IME_ACTION_DONE) {
|
||||
v.hideKeyboard()
|
||||
handlePublicKeyEntered()
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
publicKeyEditText.addTextChangedListener { text -> createPrivateChatButton.isVisible = !text.isNullOrBlank() }
|
||||
publicKeyEditText.setOnFocusChangeListener { _, hasFocus -> optionalContentContainer.isVisible = !hasFocus }
|
||||
mainContainer.setOnTouchListener { _, _ ->
|
||||
binding.optionalContentContainer.isVisible = true
|
||||
publicKeyEditText.clearFocus()
|
||||
publicKeyEditText.hideKeyboard()
|
||||
true
|
||||
}
|
||||
val size = toPx(228, resources)
|
||||
val qrCode = QRCodeUtilities.encode(hexEncodedPublicKey, size, isInverted = false, hasTransparentBackground = false)
|
||||
qrCodeImageView.setImageBitmap(qrCode)
|
||||
publicKeyTextView.text = hexEncodedPublicKey
|
||||
publicKeyTextView.setOnCreateContextMenuListener { contextMenu, view, _ ->
|
||||
contextMenu.add(0, view.id, 0, R.string.copy).setOnMenuItemClickListener {
|
||||
copyPublicKey()
|
||||
true
|
||||
}
|
||||
}
|
||||
copyButton.setOnClickListener { copyPublicKey() }
|
||||
shareButton.setOnClickListener { sharePublicKey() }
|
||||
createPrivateChatButton.setOnClickListener { handlePublicKeyEntered(); publicKeyEditText.hideKeyboard() }
|
||||
}
|
||||
}
|
||||
|
||||
private fun copyPublicKey() {
|
||||
val clipboard = requireActivity().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clip = ClipData.newPlainText("Session ID", hexEncodedPublicKey)
|
||||
clipboard.setPrimaryClip(clip)
|
||||
Toast.makeText(requireContext(), R.string.copied, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
|
||||
private fun sharePublicKey() {
|
||||
val intent = Intent()
|
||||
intent.action = Intent.ACTION_SEND
|
||||
intent.putExtra(Intent.EXTRA_TEXT, hexEncodedPublicKey)
|
||||
intent.type = "text/plain"
|
||||
startActivity(intent)
|
||||
}
|
||||
|
||||
private fun handlePublicKeyEntered() {
|
||||
val hexEncodedPublicKey = binding.publicKeyEditText.text?.trim()?.toString()
|
||||
if (hexEncodedPublicKey.isNullOrEmpty()) return
|
||||
delegate?.handlePublicKeyEntered(hexEncodedPublicKey)
|
||||
}
|
||||
}
|
||||
|
||||
fun interface EnterPublicKeyDelegate {
|
||||
fun handlePublicKeyEntered(publicKey: String)
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<translate
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:duration="350"
|
||||
android:fromYDelta="100%"
|
||||
android:toYDelta="0%" />
|
||||
</set>
|
@ -1,6 +0,0 @@
|
||||
<alpha
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:interpolator="@android:interpolator/decelerate_quad"
|
||||
android:fromAlpha="0.0"
|
||||
android:toAlpha="1.0"
|
||||
android:duration="@android:integer/config_shortAnimTime" />
|
@ -1,6 +0,0 @@
|
||||
<alpha
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:interpolator="@android:interpolator/decelerate_quad"
|
||||
android:fromAlpha="1.0"
|
||||
android:toAlpha="0.0"
|
||||
android:duration="@android:integer/config_shortAnimTime" />
|
@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:interpolator="@android:anim/decelerate_interpolator">
|
||||
<scale
|
||||
android:duration="150"
|
||||
android:fromXScale="0.85"
|
||||
android:fromYScale="0.85"
|
||||
android:toXScale="1.0"
|
||||
android:toYScale="1.0"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="50%" />
|
||||
<alpha
|
||||
android:duration="150"
|
||||
android:fromAlpha="0.6"
|
||||
android:toAlpha="1.0" />
|
||||
</set>
|
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<alpha android:duration="1"
|
||||
android:fromAlpha="0"
|
||||
android:toAlpha="1"/>
|
||||
|
||||
<translate
|
||||
android:duration="250"
|
||||
android:fromYDelta="-100%"
|
||||
android:toYDelta="0%" />
|
||||
</set>
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="250"
|
||||
android:fromYDelta="0%"
|
||||
android:toYDelta="-100%" />
|
||||
</set>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:duration="@integer/play_button_animation_duration"
|
||||
android:interpolator="@android:interpolator/accelerate_decelerate"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="@string/pause_icon_bottom_path_data"
|
||||
android:valueTo="@string/play_icon_bottom_path_data"
|
||||
android:valueType="pathType"/>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:duration="@integer/play_button_animation_duration"
|
||||
android:interpolator="@android:interpolator/accelerate_decelerate"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="@string/play_icon_bottom_path_data"
|
||||
android:valueTo="@string/pause_icon_bottom_path_data"
|
||||
android:valueType="pathType"/>
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<objectAnimator
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:duration="@integer/play_button_animation_duration"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="90"
|
||||
android:valueType="floatType"/>
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<objectAnimator
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:duration="@integer/play_button_animation_duration"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="90"
|
||||
android:valueTo="0"
|
||||
android:valueType="floatType"/>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:duration="@integer/play_button_animation_duration"
|
||||
android:interpolator="@android:interpolator/accelerate_decelerate"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="@string/pause_icon_upper_path_data"
|
||||
android:valueTo="@string/play_icon_upper_path_data"
|
||||
android:valueType="pathType"/>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:duration="@integer/play_button_animation_duration"
|
||||
android:interpolator="@android:interpolator/accelerate_decelerate"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="@string/play_icon_upper_path_data"
|
||||
android:valueTo="@string/pause_icon_upper_path_data"
|
||||
android:valueType="pathType"/>
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/signal_icon_tint_tab_selected" android:state_selected="true" />
|
||||
<item android:color="@color/signal_icon_tint_tab_unselected" />
|
||||
</selector>
|
Before Width: | Height: | Size: 117 B |
Before Width: | Height: | Size: 321 B |
Before Width: | Height: | Size: 304 B |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 988 B |
Before Width: | Height: | Size: 287 B |
Before Width: | Height: | Size: 204 B |
Before Width: | Height: | Size: 274 B |
Before Width: | Height: | Size: 407 B |
Before Width: | Height: | Size: 814 B |
Before Width: | Height: | Size: 862 B |
Before Width: | Height: | Size: 367 B |
Before Width: | Height: | Size: 347 B |
Before Width: | Height: | Size: 114 B |
Before Width: | Height: | Size: 253 B |
Before Width: | Height: | Size: 236 B |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 888 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 781 B |
Before Width: | Height: | Size: 557 B |
Before Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 255 B |
Before Width: | Height: | Size: 191 B |
Before Width: | Height: | Size: 319 B |
Before Width: | Height: | Size: 543 B |
Before Width: | Height: | Size: 542 B |
Before Width: | Height: | Size: 295 B |
Before Width: | Height: | Size: 290 B |
Before Width: | Height: | Size: 143 B |
Before Width: | Height: | Size: 410 B |
Before Width: | Height: | Size: 379 B |
Before Width: | Height: | Size: 198 B |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 363 B |
Before Width: | Height: | Size: 387 B |
Before Width: | Height: | Size: 282 B |
Before Width: | Height: | Size: 584 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 538 B |
Before Width: | Height: | Size: 504 B |
Before Width: | Height: | Size: 165 B |
Before Width: | Height: | Size: 585 B |
Before Width: | Height: | Size: 540 B |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 494 B |
Before Width: | Height: | Size: 346 B |
Before Width: | Height: | Size: 452 B |
Before Width: | Height: | Size: 785 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 720 B |
Before Width: | Height: | Size: 563 B |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 545 B |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 650 B |
Before Width: | Height: | Size: 14 KiB |
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<inset xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:drawable="@drawable/circle_tintable"
|
||||
android:inset="4dp"/>
|
@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2013 The Android Open Source Project
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" />
|
@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<stroke
|
||||
android:width="1dp"
|
||||
android:color="@color/core_grey_15" />
|
||||
|
||||
<solid
|
||||
android:color="@color/core_grey_05" />
|
||||
|
||||
<corners
|
||||
android:radius="20dp" />
|
||||
|
||||
</shape>
|
@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#0d000000" />
|
||||
<corners android:radius="@dimen/message_bubble_corner_radius" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
<item android:bottom="@dimen/message_bubble_shadow_distance">
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#fff3f3f3" />
|
||||
<corners android:bottomLeftRadius="@dimen/message_bubble_corner_radius" android:bottomRightRadius="@dimen/message_bubble_corner_radius" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
</layer-list>
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:left="83dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/gray12" />
|
||||
<size android:height="1px" />
|
||||
</shape>
|
||||
</item>
|
||||
</layer-list>
|
@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="@color/textsecure_primary">
|
||||
<item android:id="@android:id/mask" android:drawable="@android:color/black" />
|
||||
<item>
|
||||
<selector>
|
||||
<item android:drawable="?colorAccent" android:state_selected="true" />
|
||||
</selector>
|
||||
</item>
|
||||
</ripple>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<gradient
|
||||
android:type="linear"
|
||||
android:angle="90"
|
||||
android:endColor="@color/transparent"
|
||||
android:startColor="?conversation_menu_background_color"/>
|
||||
</shape>
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?android:colorControlHighlight">
|
||||
|
||||
<item>
|
||||
<color android:color="?conversation_pinned_background_color" />
|
||||
</item>
|
||||
</ripple>
|
@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="100dp"
|
||||
android:height="100dp"
|
||||
android:viewportWidth="100"
|
||||
android:viewportHeight="100">
|
||||
|
||||
<path
|
||||
android:pathData="M0,0 L100,100 M0,100 L100,0"
|
||||
android:strokeWidth="1"
|
||||
android:strokeColor="@android:color/white" />
|
||||
</vector>
|
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="?danger" />
|
||||
|
||||
<corners android:radius="@dimen/dialog_button_corner_radius" />
|
||||
|
||||
<stroke android:width="@dimen/border_thickness" android:color="?danger" />
|
||||
</shape>
|
@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle" >
|
||||
|
||||
<gradient
|
||||
android:angle="90"
|
||||
android:startColor="?default_background_start"
|
||||
android:endColor="?default_background_end"
|
||||
android:type="linear" />
|
||||
|
||||
</shape>
|
@ -1,18 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="32dp"
|
||||
android:height="32dp"
|
||||
android:viewportWidth="32"
|
||||
android:viewportHeight="32">
|
||||
<path
|
||||
android:pathData="M16,16m-16,0a16,16 0,1 1,32 0a16,16 0,1 1,-32 0"
|
||||
android:fillColor="@color/core_grey_05"/>
|
||||
<path
|
||||
android:pathData="M8,16m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0"
|
||||
android:fillColor="@color/core_grey_45"/>
|
||||
<path
|
||||
android:pathData="M16,16m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0"
|
||||
android:fillColor="@color/core_grey_45"/>
|
||||
<path
|
||||
android:pathData="M24,16m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0"
|
||||
android:fillColor="@color/core_grey_45"/>
|
||||
</vector>
|
@ -1,10 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,4l-1.41,1.41L16.17,11H4v2h12.17l-5.58,5.59L12,20l8,-8z"/>
|
||||
</vector>
|
@ -1,11 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:autoMirrored="true">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M9,5v2h6.59L4,18.59 5.41,20 17,8.41V15h2V5z"/>
|
||||
</vector>
|