add notification legacy support ios 15
This commit is contained in:
		
							parent
							
								
									2f8c1f3514
								
							
						
					
					
						commit
						726a6983b2
					
				@ -1473,6 +1473,9 @@
 | 
				
			|||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "Поддержка iOS 15 работает в экспериментальном режиме. Для лучшей совместимости требуется iOS 16+." : {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "Поделитесь идеями, сообщите об ошибке или расскажите, что работает отлично." : {
 | 
					    "Поделитесь идеями, сообщите об ошибке или расскажите, что работает отлично." : {
 | 
				
			||||||
      "comment" : "feedback: info detail",
 | 
					      "comment" : "feedback: info detail",
 | 
				
			||||||
@ -2292,6 +2295,9 @@
 | 
				
			|||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "Экспериментальная поддержка iOS 15" : {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "Язык" : {
 | 
					    "Язык" : {
 | 
				
			||||||
      "localizations" : {
 | 
					      "localizations" : {
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@ struct LoginView: View {
 | 
				
			|||||||
    private let themeOptions = ThemeOption.ordered
 | 
					    private let themeOptions = ThemeOption.ordered
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    @State private var isShowingRegistration = false
 | 
					    @State private var isShowingRegistration = false
 | 
				
			||||||
 | 
					    @State private var showLegacySupportNotice = false
 | 
				
			||||||
    @FocusState private var focusedField: Field?
 | 
					    @FocusState private var focusedField: Field?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private enum Field: Hashable {
 | 
					    private enum Field: Hashable {
 | 
				
			||||||
@ -156,9 +157,19 @@ struct LoginView: View {
 | 
				
			|||||||
                    dismissButton: .default(Text(NSLocalizedString("OK", comment: "")))
 | 
					                    dismissButton: .default(Text(NSLocalizedString("OK", comment: "")))
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            .onAppear {
 | 
				
			||||||
 | 
					                if shouldShowLegacySupportNotice {
 | 
				
			||||||
 | 
					                    showLegacySupportNotice = true
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            .onTapGesture {
 | 
					            .onTapGesture {
 | 
				
			||||||
                focusedField = nil
 | 
					                focusedField = nil
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            if showLegacySupportNotice {
 | 
				
			||||||
 | 
					                LegacySupportNoticeView(isPresented: $showLegacySupportNotice)
 | 
				
			||||||
 | 
					                    .transition(.opacity)
 | 
				
			||||||
 | 
					                    .zIndex(1)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    private var themeIconName: String {
 | 
					    private var themeIconName: String {
 | 
				
			||||||
@ -172,11 +183,68 @@ struct LoginView: View {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private var shouldShowLegacySupportNotice: Bool {
 | 
				
			||||||
 | 
					#if os(iOS)
 | 
				
			||||||
 | 
					        let requiredVersion = OperatingSystemVersion(majorVersion: 16, minorVersion: 0, patchVersion: 0)
 | 
				
			||||||
 | 
					        return !ProcessInfo.processInfo.isOperatingSystemAtLeast(requiredVersion)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					        return false
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private func openLanguageSettings() {
 | 
					    private func openLanguageSettings() {
 | 
				
			||||||
        guard let url = URL(string: UIApplication.openSettingsURLString) else { return }
 | 
					        guard let url = URL(string: UIApplication.openSettingsURLString) else { return }
 | 
				
			||||||
        UIApplication.shared.open(url)
 | 
					        UIApplication.shared.open(url)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private struct LegacySupportNoticeView: View {
 | 
				
			||||||
 | 
					        @Binding var isPresented: Bool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        var body: some View {
 | 
				
			||||||
 | 
					            ZStack {
 | 
				
			||||||
 | 
					                Color.black.opacity(0.5)
 | 
				
			||||||
 | 
					                    .ignoresSafeArea()
 | 
				
			||||||
 | 
					                    .onTapGesture {
 | 
				
			||||||
 | 
					                        isPresented = false
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                VStack(spacing: 16) {
 | 
				
			||||||
 | 
					                    Image(systemName: "exclamationmark.triangle.fill")
 | 
				
			||||||
 | 
					                        .font(.system(size: 40, weight: .bold))
 | 
				
			||||||
 | 
					                        .foregroundColor(.yellow)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    Text("Экспериментальная поддержка iOS 15")
 | 
				
			||||||
 | 
					                        .font(.headline)
 | 
				
			||||||
 | 
					                        .multilineTextAlignment(.center)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    Text("Поддержка iOS 15 работает в экспериментальном режиме. Для лучшей совместимости требуется iOS 16+.")
 | 
				
			||||||
 | 
					                        .font(.subheadline)
 | 
				
			||||||
 | 
					                        .foregroundColor(.secondary)
 | 
				
			||||||
 | 
					                        .multilineTextAlignment(.center)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    Button {
 | 
				
			||||||
 | 
					                        isPresented = false
 | 
				
			||||||
 | 
					                    } label: {
 | 
				
			||||||
 | 
					                        Text("Понятно")
 | 
				
			||||||
 | 
					                            .bold()
 | 
				
			||||||
 | 
					                            .frame(maxWidth: .infinity)
 | 
				
			||||||
 | 
					                            .padding()
 | 
				
			||||||
 | 
					                            .background(Color.blue)
 | 
				
			||||||
 | 
					                            .foregroundColor(.white)
 | 
				
			||||||
 | 
					                            .cornerRadius(12)
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                .padding(24)
 | 
				
			||||||
 | 
					                .background(
 | 
				
			||||||
 | 
					                    RoundedRectangle(cornerRadius: 20, style: .continuous)
 | 
				
			||||||
 | 
					                        .fill(Color(.systemBackground))
 | 
				
			||||||
 | 
					                )
 | 
				
			||||||
 | 
					                .frame(maxWidth: 320)
 | 
				
			||||||
 | 
					                .shadow(radius: 10)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private var selectedThemeOption: ThemeOption {
 | 
					    private var selectedThemeOption: ThemeOption {
 | 
				
			||||||
        ThemeOption.option(for: themeManager.theme)
 | 
					        ThemeOption.option(for: themeManager.theme)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user