瀏覽代碼

1. 添加忘记密码的秘钥显示功能

huangxiaodong 2 年之前
父節點
當前提交
d404db9d3e

+ 8 - 0
创维盒子/双子星云手机.xcodeproj/project.pbxproj

@@ -164,6 +164,8 @@
 		6BF52CA72AD7D3BE00A617DB /* customLaunchView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BF52CA52AD7D3BE00A617DB /* customLaunchView.m */; };
 		6BF52CAD2AD82EA500A617DB /* PlayerControlButTipView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BF52CAB2AD82EA500A617DB /* PlayerControlButTipView.h */; };
 		6BF52CAE2AD82EA500A617DB /* PlayerControlButTipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BF52CAC2AD82EA500A617DB /* PlayerControlButTipView.m */; };
+		6BFF26882AF8949F00FCB4F7 /* playerShowSecretkeyView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BFF26862AF8949F00FCB4F7 /* playerShowSecretkeyView.h */; };
+		6BFF26892AF8949F00FCB4F7 /* playerShowSecretkeyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BFF26872AF8949F00FCB4F7 /* playerShowSecretkeyView.m */; };
 		6C21BF39CEECF8E81BD97788 /* libPods-双子星云手机Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 16C83602E592F43A82A92B3E /* libPods-双子星云手机Tests.a */; };
 		82762E13327622CA8A8512E6 /* libPods-隐私保护-双子星云手机UITests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A7C795CAC690A410AE1E306 /* libPods-隐私保护-双子星云手机UITests.a */; };
 		A00221DB27EAFF4A00E45F78 /* HWAddBookmarkViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A00221D927EAFF4A00E45F78 /* HWAddBookmarkViewController.m */; };
@@ -491,6 +493,8 @@
 		6BF52CA52AD7D3BE00A617DB /* customLaunchView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = customLaunchView.m; sourceTree = "<group>"; };
 		6BF52CAB2AD82EA500A617DB /* PlayerControlButTipView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlayerControlButTipView.h; sourceTree = "<group>"; };
 		6BF52CAC2AD82EA500A617DB /* PlayerControlButTipView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PlayerControlButTipView.m; sourceTree = "<group>"; };
+		6BFF26862AF8949F00FCB4F7 /* playerShowSecretkeyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = playerShowSecretkeyView.h; sourceTree = "<group>"; };
+		6BFF26872AF8949F00FCB4F7 /* playerShowSecretkeyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = playerShowSecretkeyView.m; sourceTree = "<group>"; };
 		71D630B0FBD97501D316E4AB /* Pods-隐私保护.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-隐私保护.release.xcconfig"; path = "Target Support Files/Pods-隐私保护/Pods-隐私保护.release.xcconfig"; sourceTree = "<group>"; };
 		86FBD9FD629A5194B7C58D9F /* Pods-双子星云手机-双子星云手机UITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-双子星云手机-双子星云手机UITests.debug.xcconfig"; path = "Target Support Files/Pods-双子星云手机-双子星云手机UITests/Pods-双子星云手机-双子星云手机UITests.debug.xcconfig"; sourceTree = "<group>"; };
 		A00221D827EAFF4A00E45F78 /* HWAddBookmarkViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HWAddBookmarkViewController.h; sourceTree = "<group>"; };
@@ -908,6 +912,8 @@
 				187076762A9F400300F15F7F /* PlayerLoadingView.m */,
 				6BF52CAB2AD82EA500A617DB /* PlayerControlButTipView.h */,
 				6BF52CAC2AD82EA500A617DB /* PlayerControlButTipView.m */,
+				6BFF26862AF8949F00FCB4F7 /* playerShowSecretkeyView.h */,
+				6BFF26872AF8949F00FCB4F7 /* playerShowSecretkeyView.m */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -1456,6 +1462,7 @@
 				18F9CAFC2ABD35C4003FF71A /* ModifyPWDFirstViewController.h in Headers */,
 				1810F9012AA1839C00322116 /* PhoneTimeInfoModel.h in Headers */,
 				6BBB35E22AE935C000E4A59B /* DDYLanguageTool.h in Headers */,
+				6BFF26882AF8949F00FCB4F7 /* playerShowSecretkeyView.h in Headers */,
 				6BF0F3D52AD3937B000AA133 /* DeviceThirdIdModel.h in Headers */,
 				18FCE5332AD12FE00020F623 /* ConnectTestViewController.h in Headers */,
 				181E84F22A8F0A9B00292B96 /* HelpDownScrollView.h in Headers */,
@@ -1863,6 +1870,7 @@
 				A08A950127E9A4E400C544BB /* FMDatabaseAdditions.m in Sources */,
 				A08A94FB27E9A4E400C544BB /* BGDB.m in Sources */,
 				A003F6B427D841EE00715CBF /* UITextfield+NLLimit.m in Sources */,
+				6BFF26892AF8949F00FCB4F7 /* playerShowSecretkeyView.m in Sources */,
 				A003F6A727D841C800715CBF /* BaseNavigationController.m in Sources */,
 				A00221E427EB256D00E45F78 /* HWFolderModel.m in Sources */,
 				183AE6B02A8C9EAB00B11CB0 /* RCCommandHelp.m in Sources */,

+ 3 - 0
创维盒子/双子星云手机/AppDelegate/Config/Notification.h

@@ -41,6 +41,9 @@
 /*完成引导通知*/
 #define GuideOkNotification                 @"GuideOk"
 
+/*设置密码通知*/
+#define setPwdNotification                 @"setPwdNot"
+
 /*主动上锁通知*/
 #define lockBypwdNotification                 @"lockBypwdNot"
 

+ 25 - 8
创维盒子/双子星云手机/AppDelegate/SceneDelegate.m

@@ -31,6 +31,8 @@
 @property(nonatomic, strong)   PlayerViewController *curPlayerVC;
 
 @property(nonatomic, assign)   bool isQRCodeType;//第一次 扫码进来的
+@property(nonatomic, assign)   bool isNeedToShowSecretKey;//扫码进来的SN 没有密码 则需要显示秘钥
+
 @property (nonatomic, assign)  BOOL isLoginAgainType;// 单点登录 点重新登录进来的
 @end
 
@@ -43,6 +45,9 @@
         
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showLockViewFun:)  name:lockBypwdNotification  object:nil];
         
+        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setPwdVCFun:)  name:setPwdNotification  object:nil];
+        
+        
         UIWindowScene *windowScene = (UIWindowScene *)scene;
         self.window = [[UIWindow alloc] initWithWindowScene:windowScene];
         self.window.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
@@ -150,15 +155,15 @@
         HLog(@"没有拿到sdnId");
         
         [[connectDeviceManager shareInstance] getThridMsgBySN:SNStr needReconnect:YES didNetEnd:^(bool didSuc) {
-            
+            if(didSuc){
+                dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                    mainBlock(^{
+                        [self enterMainVCFromScene];
+                    });
+                });
+            }
         }];
         
-        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-            mainBlock(^{
-                [self enterMainVCFromScene];
-            });
-        });
-        
         return;
     }
     
@@ -209,11 +214,17 @@
             mainBlock(^{
                 playerRootVC.isPwdVCShow = NO;
                 [playerRootVC setShowImgAndVoiceTypeFun:YES];
+                
+                if(self->_isNeedToShowSecretKey){
+                    [playerRootVC showSecretkeyFun];
+                }
+                
             });
         });
     }
     
-    
+    //test code
+    //[playerRootVC showSecretkeyFun];
    
     
 //    MySetViewController *playerRootVC = [[MySetViewController alloc] init];
@@ -560,4 +571,10 @@
 {
     [self showCalculatorVC];
 }
+
+#pragma mark 进入设置密码
+- (void)setPwdVCFun:(NSNotification*)not
+{
+    _isNeedToShowSecretKey = YES;
+}
 @end

+ 3 - 0
创维盒子/双子星云手机/Class/Guide/SetPWDFirstViewController.m

@@ -28,6 +28,9 @@
     // Do any additional setup after loading the view.
     pwd = @"";
     [self drawAnyView];
+    
+    //发个通知 记录进入了设置密码
+    [[NSNotificationCenter defaultCenter] postNotificationName:setPwdNotification object:nil];
 }
 
 

+ 4 - 0
创维盒子/双子星云手机/CloudPlayer/PlayerViewController.h

@@ -13,6 +13,7 @@
 #import <RCCloudPhoneSDK/RCCommandChannel.h>
 #import "PlayerControlButTipView.h"
 #import "Const.h"
+#import "playerShowSecretkeyView.h"
 @protocol PlayerViewControllerDelegate <NSObject>
 
 @optional
@@ -153,4 +154,7 @@ typedef void(^completiongeBlock) (int stats , NSString *backData);
 
 #pragma mark - 设置是否可以播放声音和动画
 -(void)setShowImgAndVoiceTypeFun:(bool)isCan;
+
+#pragma mark - 显示秘钥 后续忘记密码要
+-(void)showSecretkeyFun;
 @end

+ 41 - 22
创维盒子/双子星云手机/CloudPlayer/PlayerViewController.mm

@@ -984,28 +984,6 @@ ComontAlretViewControllerDelegate>
     
     HLog(@"云手机推流界面 控制按钮中点%@",NSStringFromCGPoint(mPlayerView.controlBtn.center));
     
-    BOOL didShowControlBtnTip = [HWDataManager getBoolWithKey:Const_did_Show_playView_controlBtn_Tip];
-
-    if(!didShowControlBtnTip && !_PlayerControlButTipV){
-        mPlayerView.controlBtn.hidden = YES;
-        
-        _PlayerControlButTipV = [[PlayerControlButTipView alloc] init];
-        _PlayerControlButTipV.backgroundColor = [UIColor hwColor:@"000000" alpha:0.6];
-        [self.view addSubview:_PlayerControlButTipV];
-        [self.view bringSubviewToFront:_PlayerControlButTipV];
-        
-        [_PlayerControlButTipV mas_makeConstraints:^(MASConstraintMaker *make) {
-            make.right.mas_equalTo(0);
-            make.top.mas_equalTo(0.f);
-            make.left.mas_equalTo(0.f);
-            make.bottom.mas_equalTo(0.f);
-        }];
-        
-        
-        _PlayerControlButTipV.didKnowPlayerControlButTip = ^{
-            self->mPlayerView.controlBtn.hidden = NO;
-        };
-    }
 }
 
 #pragma mark - 手势权限控制处理
@@ -1723,6 +1701,47 @@ NSDate *lastVideoTome;/*上一帧数据时间*/
     
 }
 
+#pragma mark - 显示秘钥 后续忘记密码要
+-(void)showSecretkeyFun
+{
+    mPlayerView.controlBtn.hidden = YES;
+    playerShowSecretkeyView *view = [[playerShowSecretkeyView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_W, SCREEN_H)];
+    [self.view addSubview:view];
+    [self.view bringSubviewToFront:view];
+    
+    KWeakSelf
+    view.didCloseSecretKeyViewTip = ^{
+        self->mPlayerView.controlBtn.hidden = NO;
+        [weakSelf showControlBtnTipFun];
+    };
+}
+
+#pragma mark 显示首次浮标引导操作提示
+- (void)showControlBtnTipFun{
+    
+    BOOL didShowControlBtnTip = [HWDataManager getBoolWithKey:Const_did_Show_playView_controlBtn_Tip];
+
+    if(!didShowControlBtnTip && !_PlayerControlButTipV){
+        mPlayerView.controlBtn.hidden = YES;
+        
+        _PlayerControlButTipV = [[PlayerControlButTipView alloc] init];
+        _PlayerControlButTipV.backgroundColor = [UIColor hwColor:@"000000" alpha:0.6];
+        [self.view addSubview:_PlayerControlButTipV];
+        [self.view bringSubviewToFront:_PlayerControlButTipV];
+        
+        [_PlayerControlButTipV mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.right.mas_equalTo(0);
+            make.top.mas_equalTo(0.f);
+            make.left.mas_equalTo(0.f);
+            make.bottom.mas_equalTo(0.f);
+        }];
+        
+        
+        _PlayerControlButTipV.didKnowPlayerControlButTip = ^{
+            self->mPlayerView.controlBtn.hidden = NO;
+        };
+    }
+}
 #pragma mark - PlayerControlViewDelegate---控制器按键
 //- (void)stopShareBtnBePressed:(id)sender
 //{

+ 1 - 1
创维盒子/双子星云手机/CloudPlayer/View/PlayerView.m

@@ -67,7 +67,7 @@ ShowImageViewDelegate>{
                   inRect:CGRectMake(0, 0, glkshowImageView.drawableWidth, glkshowImageView.drawableHeight)
                 fromRect:[ciImage extent]];
     
-    [self->glkshowImageView display];
+    //[self->glkshowImageView display];
 }
 
 - (void)showIMage

+ 16 - 0
创维盒子/双子星云手机/CloudPlayer/View/playerShowSecretkeyView.h

@@ -0,0 +1,16 @@
+//
+//  playerShowSecretkeyView.h
+//  隐私保护
+//
+//  Created by xd h on 2023/11/6.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface playerShowSecretkeyView : UIView
+@property (nonatomic,copy) void (^didCloseSecretKeyViewTip)(void);
+@end
+
+NS_ASSUME_NONNULL_END

+ 219 - 0
创维盒子/双子星云手机/CloudPlayer/View/playerShowSecretkeyView.m

@@ -0,0 +1,219 @@
+//
+//  playerShowSecretkeyView.m
+//  隐私保护
+//
+//  Created by xd h on 2023/11/6.
+//
+
+#import "playerShowSecretkeyView.h"
+#import "RSATool.h"
+#import "connectDeviceManager.h"
+
+@interface playerShowSecretkeyView()
+
+@property(nonatomic,strong)UIView *whiteBgView;
+@property(nonatomic,strong)UIButton *closeBut;
+@property(nonatomic,strong)NSTimer *curTimer;
+@property(nonatomic,assign) NSInteger coundDownNumber;
+@end
+
+@implementation playerShowSecretkeyView
+
+- (id)initWithFrame:(CGRect)frame{
+    self = [super initWithFrame:frame];
+    self.backgroundColor = [UIColor hwColor:@"000000" alpha:0.6];
+    [self drawAnyView];
+    
+    return self;
+}
+
+- (void)drawAnyView{
+    _whiteBgView = [[UIView alloc] init];
+    _whiteBgView.layer.cornerRadius = 8;
+    _whiteBgView.backgroundColor = [UIColor whiteColor];
+    [self addSubview:_whiteBgView];
+    
+    [_whiteBgView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.height.mas_equalTo(260);
+        make.width.mas_equalTo(300.f);
+        make.center.mas_equalTo(0.f);
+    }];
+    
+    
+    UILabel *titleLab = [[UILabel alloc] init];
+    titleLab.text = NSLocalizedString(@"player_Secret_key_title",nil);
+    titleLab.textAlignment = NSTextAlignmentCenter;
+    titleLab.font = [UIFont boldSystemFontOfSize:18];
+    [_whiteBgView addSubview:titleLab];
+    
+    [titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.height.mas_equalTo(20);
+        make.left.mas_equalTo(0.f);
+        make.right.mas_equalTo(0.f);
+        make.top.mas_equalTo(30.f);
+    }];
+    
+    
+    UILabel *tipLab = [[UILabel alloc] init];
+    tipLab.text = NSLocalizedString(@"player_Secret_key_tip",nil);
+    tipLab.textAlignment = NSTextAlignmentCenter;
+    tipLab.font = [UIFont systemFontOfSize:14];
+    tipLab.numberOfLines = 0;
+    tipLab.textColor = [UIColor hwColor:@"#FF5353" alpha:1.0];
+    [_whiteBgView addSubview:tipLab];
+    
+    [tipLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.height.mas_equalTo(35);
+        make.left.mas_equalTo(10.f);
+        make.right.mas_equalTo(-0.f);
+        make.top.mas_equalTo(titleLab.mas_bottom).offset(5.f);
+    }];
+    
+    
+    
+    UIView*grayBgView = [[UIView alloc] init];
+    grayBgView.layer.cornerRadius = 2;
+    grayBgView.backgroundColor = [UIColor hwColor:@"#F9F9F9" alpha:1.0];
+    [_whiteBgView addSubview:grayBgView];
+    
+    [grayBgView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.height.mas_equalTo(56);
+        make.left.mas_equalTo(30.f);
+        make.right.mas_equalTo(-30.f);
+        make.top.mas_equalTo(tipLab.mas_bottom).offset(20.f);
+    }];
+    
+    [grayBgView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(copyKeyFun)]];
+    
+    
+    NSString *snStr = [connectDeviceManager shareInstance].DeviceThirdIdMod.data.sn;
+    NSString *secretkey  = [RSATool sha256_8:snStr];
+
+    UILabel *secretKeyLab = [[UILabel alloc] init];
+    secretKeyLab.text = secretkey;
+    //secretKeyLab.textAlignment = NSTextAlignmentCenter;
+    secretKeyLab.font = [UIFont boldSystemFontOfSize:16];
+    secretKeyLab.textColor = [UIColor hwColor:@"#3B7FFF" alpha:1.0];
+    [grayBgView addSubview:secretKeyLab];
+
+    [secretKeyLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.bottom.mas_equalTo(0.f);
+        make.left.mas_equalTo(10.f);
+        make.right.mas_equalTo(0.f);
+        make.top.mas_equalTo(0.f);
+    }];
+    
+    
+    NSString*curStr = NSLocalizedString(@"player_Secret_key_copy",nil);
+    
+    UILabel *rightLab = [[UILabel alloc] init];
+    rightLab.text = [[NSString alloc] initWithFormat:@"|   %@",curStr];
+    //@"|  复制密钥";
+    rightLab.textAlignment = NSTextAlignmentRight;
+    rightLab.font = [UIFont systemFontOfSize:16];
+    rightLab.textColor = [UIColor hwColor:@"#666666" alpha:1.0];
+    [grayBgView addSubview:rightLab];
+
+    [rightLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.bottom.mas_equalTo(0.f);
+        make.left.mas_equalTo(10.f);
+        make.right.mas_equalTo(-10.f);
+        make.top.mas_equalTo(0.f);
+    }];
+    
+    
+    _closeBut = [[UIButton alloc] init];
+    
+    
+    NSString *butTitle = [[NSString alloc] initWithFormat:@"%@ %@",NSLocalizedString(@"player_Secret_key_close",nil), @"(10s)"];
+    /*确认按钮*/
+    _closeBut = [[UIButton alloc] init];
+    CGFloat okBtn_W= 240;
+    // gradient
+    CAGradientLayer *gl = [CAGradientLayer layer];
+    gl.frame = CGRectMake(0,0,okBtn_W,40);
+    gl.startPoint = CGPointMake(0, 0.5);
+    gl.endPoint = CGPointMake(1, 0.5);
+    gl.colors = @[(__bridge id)HW0CDEFDColor.CGColor, (__bridge id)HW058DFBColor.CGColor];
+    gl.locations = @[@(0), @(1.0f)];
+    _closeBut.layer.cornerRadius = 8;
+    _closeBut.clipsToBounds = YES;
+    [_closeBut.layer addSublayer:gl];
+    [_closeBut setTitle:butTitle forState:(UIControlStateNormal)];
+    [_closeBut setTitleColor:[UIColor whiteColor] forState:(UIControlStateNormal)];
+    [_closeBut addTarget:self action:@selector(closeViewFun) forControlEvents:UIControlEventTouchUpInside];
+    
+//    NSString* curLanguage = [DDYLanguageTool ddy_AppLanguage];
+//    if(!curLanguage || curLanguage.length == 0){
+//        curLanguage = [DDYLanguageTool ddy_SystemLanguage];
+//    }
+//
+//    // "zh-Hant-HK", "zh-Hans-US",
+//    if([curLanguage rangeOfString:@"zh-Han"].location != NSNotFound){//中文和繁体
+//        [okBtn.titleLabel setFont:[UIFont systemFontOfSize:16.f]];
+//    }
+//    else{//en-US
+//        [okBtn.titleLabel setFont:[UIFont systemFontOfSize:14.f]];
+//    }
+   
+    [_whiteBgView addSubview:_closeBut];
+    [_closeBut mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.bottom.mas_equalTo(-30.f);
+        make.centerX.mas_equalTo(0.f);
+        make.width.mas_equalTo(okBtn_W);
+        make.height.mas_equalTo(40);
+    }];
+    
+    [_closeBut setEnabled:NO];
+    [_closeBut setAlpha:0.5];
+    
+    [_curTimer invalidate];
+    _curTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerHandleFun) userInfo:nil repeats:YES];
+    
+    _coundDownNumber = 10;
+}
+
+#pragma mark  timer fun
+- (void)timerHandleFun
+{
+    _coundDownNumber -- ;
+    if(_coundDownNumber > 0){
+        NSString *butTitle = [[NSString alloc] initWithFormat:@"%@ (%lds)",NSLocalizedString(@"player_Secret_key_close",nil), _coundDownNumber];
+        [_closeBut setTitle:butTitle forState:(UIControlStateNormal)];
+    }
+    else{
+        NSString *butTitle  = NSLocalizedString(@"player_Secret_key_close",nil);
+        [_closeBut setTitle:butTitle forState:(UIControlStateNormal)];
+        
+        [_closeBut setEnabled:YES];
+        [_closeBut setAlpha:1];
+    }
+    
+}
+
+#pragma mark 复制
+- (void)copyKeyFun
+{
+    NSString *snStr = [connectDeviceManager shareInstance].DeviceThirdIdMod.data.sn;
+    NSString *secretkey  = [RSATool sha256_8:snStr];
+    
+    UIPasteboard * Pasteboard = [UIPasteboard generalPasteboard];
+    
+    Pasteboard.string = secretkey;
+    
+    NSString *tipStr  = NSLocalizedString(@"player_Secret_key_copy_suc",nil);
+    [[iToast makeText:tipStr] show];
+    
+}
+
+#pragma mark 关闭按钮
+- (void)closeViewFun
+{
+    [self removeFromSuperview];
+  
+    if(_didCloseSecretKeyViewTip){
+        _didCloseSecretKeyViewTip();
+    }
+}
+
+@end

+ 2 - 0
创维盒子/双子星云手机/Vendor/RSATool.h

@@ -62,4 +62,6 @@
 
 + (NSData *)sha256:(NSString *)str;
 + (NSMutableString *)sha256_64:(NSString *)str;
+
++ (NSString *)sha256_8:(NSString *)str;
 @end

+ 8 - 0
创维盒子/双子星云手机/Vendor/RSATool.m

@@ -553,6 +553,14 @@ static NSData *base64_decode(NSString *str){
     return output;
 }
 
++ (NSString *)sha256_8:(NSString *)str
+{
+    NSMutableString * str64 = [self sha256_64:str];
+    NSString *str8 = [str64 substringToIndex:8];
+    str8 = [str8 uppercaseString];
+    
+    return str8;
+}
 
 // 4. 使用RSA私钥签名的实现
 + (NSString *)sign:(NSString *)content withPriKey:(NSString *)priKey

+ 6 - 0
创维盒子/双子星云手机/en.lproj/Localizable.strings

@@ -231,3 +231,9 @@
 "player_link_fail_tryAgain" = "Try again";
 "player_link_rebooting_Tips" = "Please wait a few minutes while Private-X is rebooted.";
 "player_link_reboot_suc_Tips" = "Successfully rebooted!";
+
+"player_Secret_key_title" = "Password retrieval voucher";
+"player_Secret_key_tip" = "For resetting password, please take a screenshot or copy and save";
+"player_Secret_key_copy" = "Copy Key";
+"player_Secret_key_copy_suc" = "Key copied successfully";
+"player_Secret_key_close" = "close";

+ 6 - 0
创维盒子/双子星云手机/ja.lproj/Localizable.strings

@@ -229,3 +229,9 @@
 "player_link_fail_tryAgain" = "リトライ";
 "player_link_rebooting_Tips" = "アプリが再起動中です。少々お待ちください。";
 "player_link_reboot_suc_Tips" = "アプリは正常に再起動しました!";
+
+"player_Secret_key_title" = "パスワード認証情報の復元";
+"player_Secret_key_tip" = "パスワードをリセットするには、スクリーンショットまたはコピーして保存してください";
+"player_Secret_key_copy" = "キーのコピー";
+"player_Secret_key_copy_suc" = "鍵のコピーに成功しました";
+"player_Secret_key_close" = "閉じる";

+ 6 - 0
创维盒子/双子星云手机/zh-Hans.lproj/Localizable.strings

@@ -229,3 +229,9 @@
 "player_link_fail_tryAgain" = "重试";
 "player_link_rebooting_Tips" = "小主,空间正在重启中,稍等片刻哦。";
 "player_link_reboot_suc_Tips" = "小主,你的空间已经成功重启啦!";
+
+"player_Secret_key_title" = "密码找回凭证";
+"player_Secret_key_tip" = "用于重置密码,请截图或者复制保存";
+"player_Secret_key_copy" = "复制密钥";
+"player_Secret_key_copy_suc" = "密钥复制成功";
+"player_Secret_key_close" = "关闭";

+ 7 - 0
创维盒子/双子星云手机/zh-Hant.lproj/Localizable.strings

@@ -230,3 +230,10 @@
 "player_link_fail_tryAgain" = "重試";
 "player_link_rebooting_Tips" = "小主,空間正在重啓中,稍等片刻哦。";
 "player_link_reboot_suc_Tips" = "小主,你的空間已經成功重啓啦!";
+
+
+"player_Secret_key_title" = "密碼找回憑證";
+"player_Secret_key_tip" = "用於重置密碼,請截圖或者複製保存";
+"player_Secret_key_copy" = "複製金鑰";
+"player_Secret_key_copy_suc" = "金鑰複製成功";
+"player_Secret_key_close" = "關閉";