Skip to content

New paste icon #1769

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions Mixin.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1036,7 +1036,7 @@
948ACAA52AF3950C0057D76B /* SnapshotMessageContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948ACAA42AF3950C0057D76B /* SnapshotMessageContentView.swift */; };
948E276B29D2A521002BFCE1 /* NetworkFeeOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948E276A29D2A521002BFCE1 /* NetworkFeeOption.swift */; };
948E6CB528AF95CC00DFF5DF /* TIPIntroViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948E6CB328AF95CC00DFF5DF /* TIPIntroViewController.swift */; };
948E6CB628AF95CC00DFF5DF /* IntroView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 948E6CB428AF95CC00DFF5DF /* IntroView.xib */; };
948E6CB628AF95CC00DFF5DF /* TIPIntroView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 948E6CB428AF95CC00DFF5DF /* TIPIntroView.xib */; };
948FBC882D6EF5CE000795E4 /* ClassicWalletViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948FBC872D6EF5CE000795E4 /* ClassicWalletViewController.swift */; };
948FC2962D74DE73000795E4 /* Web3TokenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948FC2952D74DE70000795E4 /* Web3TokenViewController.swift */; };
948FC56B2D760018000795E4 /* TokenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948FC56A2D760017000795E4 /* TokenViewController.swift */; };
Expand All @@ -1061,7 +1061,6 @@
9497AEA92C5D196D00966946 /* UIBackgroundConfiguration+GroupedCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9497AEA82C5D196D00966946 /* UIBackgroundConfiguration+GroupedCell.swift */; };
9497AEE92C5E264600966946 /* MixinTransactionHistoryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9497AEE82C5E264600966946 /* MixinTransactionHistoryViewController.swift */; };
9497AEEE2C5E69B000966946 /* TransactionHistoryView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9497AEED2C5E69B000966946 /* TransactionHistoryView.xib */; };
94980FC72A5D653A0051AE6D /* IntroViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94980FC62A5D653A0051AE6D /* IntroViewController.swift */; };
949A3686261D9C5C004251B2 /* post.css in Resources */ = {isa = PBXBuildFile; fileRef = 949A3685261D9C5C004251B2 /* post.css */; };
949B03C32D15922300A34EE3 /* StackedIconWrapperView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 949B03C22D15921E00A34EE3 /* StackedIconWrapperView.swift */; };
94A0C8C22C77259E00BDE672 /* AddressReceiversCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 94A0C8C12C77259E00BDE672 /* AddressReceiversCell.xib */; };
Expand Down Expand Up @@ -2561,7 +2560,7 @@
948ACAA42AF3950C0057D76B /* SnapshotMessageContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshotMessageContentView.swift; sourceTree = "<group>"; };
948E276A29D2A521002BFCE1 /* NetworkFeeOption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkFeeOption.swift; sourceTree = "<group>"; };
948E6CB328AF95CC00DFF5DF /* TIPIntroViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TIPIntroViewController.swift; sourceTree = "<group>"; };
948E6CB428AF95CC00DFF5DF /* IntroView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = IntroView.xib; sourceTree = "<group>"; };
948E6CB428AF95CC00DFF5DF /* TIPIntroView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TIPIntroView.xib; sourceTree = "<group>"; };
948FBC872D6EF5CE000795E4 /* ClassicWalletViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClassicWalletViewController.swift; sourceTree = "<group>"; };
948FC2952D74DE70000795E4 /* Web3TokenViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Web3TokenViewController.swift; sourceTree = "<group>"; };
948FC56A2D760017000795E4 /* TokenViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TokenViewController.swift; sourceTree = "<group>"; };
Expand All @@ -2585,7 +2584,6 @@
9497AEA82C5D196D00966946 /* UIBackgroundConfiguration+GroupedCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIBackgroundConfiguration+GroupedCell.swift"; sourceTree = "<group>"; };
9497AEE82C5E264600966946 /* MixinTransactionHistoryViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MixinTransactionHistoryViewController.swift; sourceTree = "<group>"; };
9497AEED2C5E69B000966946 /* TransactionHistoryView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TransactionHistoryView.xib; sourceTree = "<group>"; };
94980FC62A5D653A0051AE6D /* IntroViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntroViewController.swift; sourceTree = "<group>"; };
949A3685261D9C5C004251B2 /* post.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = post.css; sourceTree = "<group>"; };
949B03C22D15921E00A34EE3 /* StackedIconWrapperView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StackedIconWrapperView.swift; sourceTree = "<group>"; };
94A0C8C02C77259E00BDE672 /* AddressReceiversCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressReceiversCell.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -3567,8 +3565,6 @@
947FA4CB299577B700EF13A0 /* AuthorizationsViewController.swift */,
948374812A5D49110011A2CA /* PopupSelectorView.xib */,
948374802A5D49110011A2CA /* PopupSelectorViewController.swift */,
948E6CB428AF95CC00DFF5DF /* IntroView.xib */,
94980FC62A5D653A0051AE6D /* IntroViewController.swift */,
941D3BF92A7912C700538504 /* QRCodeView.xib */,
941D3BF82A7912C700538504 /* QRCodeViewController.swift */,
52DE7B4E2BEB7C940060A364 /* TransactionViewController.swift */,
Expand Down Expand Up @@ -4197,6 +4193,7 @@
isa = PBXGroup;
children = (
9459693528B28F18006F5421 /* TIPNavigationController.swift */,
948E6CB428AF95CC00DFF5DF /* TIPIntroView.xib */,
948E6CB328AF95CC00DFF5DF /* TIPIntroViewController.swift */,
94C359F428B506D40010F53C /* TIPFullscreenInputViewController.swift */,
9459693728B28FF8006F5421 /* TIPActionViewController.swift */,
Expand Down Expand Up @@ -5872,7 +5869,7 @@
942FD67D2D38CFA2004DCC4C /* SwapOrderCell.xib in Resources */,
7B7B5DB3230EBA5E00D0F463 /* PopupSearchableTableView.xib in Resources */,
DF8EF6BC2034737F00E99CE8 /* payment_success.caf in Resources */,
948E6CB628AF95CC00DFF5DF /* IntroView.xib in Resources */,
948E6CB628AF95CC00DFF5DF /* TIPIntroView.xib in Resources */,
9BB351691FB1A94100EDDD2C /* ConversationDateHeaderView.xib in Resources */,
943CAA3B2CC8CBB900346677 /* SignUpView.xib in Resources */,
941995012CCE79E700F5425C /* IntroductionView.xib in Resources */,
Expand Down Expand Up @@ -6855,7 +6852,6 @@
DFC0ECFA23BB610C0091E7AC /* GiphyAPI.swift in Sources */,
940FC8602CDCA8970056BFF2 /* PhoneNumberVerificationContext.swift in Sources */,
944A5A722C2604F70021460C /* CollectibleCollectionHeaderView.swift in Sources */,
94980FC72A5D653A0051AE6D /* IntroViewController.swift in Sources */,
7B3887BE22E1AD74002B0864 /* HomeContainerViewController.swift in Sources */,
94046B96272DC2CF007C1D4A /* IncomingPeerCall.swift in Sources */,
94FCB83B264683D900CCC8FD /* TranscriptAttachmentUploadJob.swift in Sources */,
Expand Down
25 changes: 25 additions & 0 deletions Mixin/Assets.xcassets/paste.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "[email protected]",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "[email protected]",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
54 changes: 0 additions & 54 deletions Mixin/UserInterface/Controllers/Common/IntroViewController.swift

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ final class SignInWithMnemonicsViewController: InputMnemonicsViewController {
}

addButtonIntoInputFields(
image: R.image.web.ic_action_copy()!,
image: R.image.paste()!,
title: R.string.localizable.paste(),
action: #selector(pastePhrases(_:))
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina5_9" orientation="portrait" appearance="light"/>
<accessibilityOverrides/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="IntroViewController" customModule="Mixin" customModuleProvider="target">
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="TIPIntroViewController" customModule="Mixin" customModuleProvider="target">
<connections>
<outlet property="actionDescriptionLabel" destination="ofI-57-AnA" id="OPC-5i-WMm"/>
<outlet property="contentStackView" destination="uBf-cN-kkd" id="vEC-gN-7wb"/>
Expand All @@ -30,7 +30,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="uBf-cN-kkd">
<rect key="frame" x="30" y="113" width="315" height="196"/>
<rect key="frame" x="30" y="113.33333333333333" width="315" height="195.66666666666669"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="500" translatesAutoresizingMaskIntoConstraints="NO" id="Rvb-aN-PCV">
<rect key="frame" x="0.0" y="0.0" width="315" height="76"/>
Expand All @@ -39,7 +39,7 @@
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="1000" text="Create PIN" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yik-l9-RNs">
<rect key="frame" x="0.0" y="92" width="315" height="22"/>
<rect key="frame" x="0.0" y="92.000000000000014" width="315" height="21.666666666666671"/>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
<color key="textColor" name="text"/>
<nil key="highlightedColor"/>
Expand All @@ -48,11 +48,11 @@
</userDefinedRuntimeAttributes>
</label>
<view contentMode="scaleToFill" verticalCompressionResistancePriority="1000" placeholderIntrinsicWidth="infinite" placeholderIntrinsicHeight="0.0" translatesAutoresizingMaskIntoConstraints="NO" id="urk-Lg-NWZ" customClass="TextLabel" customModule="Mixin" customModuleProvider="target">
<rect key="frame" x="0.0" y="130" width="315" height="0.0"/>
<rect key="frame" x="0.0" y="129.66666666666669" width="315" height="0.0"/>
<color key="backgroundColor" name="background"/>
</view>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" verticalCompressionResistancePriority="250" editable="NO" text=" " textAlignment="natural" selectable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DMz-OM-yrL">
<rect key="frame" x="0.0" y="146" width="315" height="50"/>
<rect key="frame" x="0.0" y="145.66666666666669" width="315" height="50"/>
<color key="backgroundColor" name="background_selection"/>
<constraints>
<constraint firstAttribute="height" priority="250" constant="50" id="gwi-52-Tcm"/>
Expand All @@ -69,7 +69,7 @@
</subviews>
</stackView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZLz-JR-XNY" customClass="RoundedButton" customModule="Mixin" customModuleProvider="target">
<rect key="frame" x="131" y="680" width="114" height="42"/>
<rect key="frame" x="130.66666666666666" y="680" width="114" height="42"/>
<inset key="contentEdgeInsets" minX="40" minY="12" maxX="40" maxY="12"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="Start">
Expand All @@ -80,7 +80,7 @@
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ofI-57-AnA">
<rect key="frame" x="20" y="730" width="335" height="15"/>
<rect key="frame" x="20" y="730" width="335" height="14.333333333333371"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
<color key="textColor" name="text_tertiary"/>
<nil key="highlightedColor"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,17 @@ import UIKit
import Alamofire
import MixinServices

final class TIPIntroViewController: IntroViewController {
final class TIPIntroViewController: UIViewController {

@IBOutlet weak var contentStackView: UIStackView!
@IBOutlet weak var iconImageView: UIImageView!
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var descriptionTextLabel: TextLabel!
@IBOutlet weak var noticeTextView: UITextView!
@IBOutlet weak var nextButton: RoundedButton!
@IBOutlet weak var actionDescriptionLabel: UILabel!

@IBOutlet weak var noticeTextViewHeightConstraint: NSLayoutConstraint!

enum Interruption {
case unknown
Expand Down Expand Up @@ -53,12 +63,14 @@ final class TIPIntroViewController: IntroViewController {
private init(intent: TIP.Action, interruption: Interruption) {
self.intent = intent
self.interruption = interruption
super.init()
let nib = R.nib.tipIntroView
super.init(nibName: nib.name, bundle: nib.bundle)
}

override func viewDidLoad() {
super.viewDidLoad()
updateNavigationItem()
contentStackView.setCustomSpacing(24, after: iconImageView)
iconImageView.image = R.image.ic_tip()
let description: String
switch intent {
Expand Down Expand Up @@ -91,6 +103,8 @@ final class TIPIntroViewController: IntroViewController {
setNoticeHidden(false)
}
descriptionTextLabel.text = description
descriptionTextLabel.delegate = self
noticeTextView.textContainerInset = UIEdgeInsets(top: 12, left: 8, bottom: 12, right: 14)
lazy var linksMap: [NSRange: URL] = {
let range = (description as NSString).range(of: R.string.localizable.learn_more(), options: [.backwards, .caseInsensitive])
if range.location != NSNotFound && range.length != 0 {
Expand All @@ -111,7 +125,14 @@ final class TIPIntroViewController: IntroViewController {
}
}

override func continueToNext(_ sender: RoundedButton) {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if noticeTextViewHeightConstraint.constant != noticeTextView.contentSize.height {
noticeTextViewHeightConstraint.constant = noticeTextView.contentSize.height
}
}

@IBAction func continueToNext(_ sender: RoundedButton) {
switch interruption {
case .unknown:
checkCounter()
Expand Down Expand Up @@ -160,6 +181,18 @@ final class TIPIntroViewController: IntroViewController {

}

extension TIPIntroViewController: CoreTextLabelDelegate {

func coreTextLabel(_ label: CoreTextLabel, didSelectURL url: URL) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

func coreTextLabel(_ label: CoreTextLabel, didLongPressOnURL url: URL) {

}

}

extension TIPIntroViewController {

private enum Status {
Expand Down