Global annotation and graffiti

Global annotation and graffiti

Ô´Âë¼ò½é

¿ ÉÒÔʵÏÖÈ«¾ÖÅú×¢£¬ÔÚÈκνçÃæ¶¼¿ ÉÒÔ½«Åú×¢±Êµ÷³öÀ´½øÐÐÅú×¢£¬Ö§³Ö¸ü»»±ÊµÄÑÕÉ«£¬´Öϸ£¬Ö§³ÖÈý¸öÊÖÖ¸²Á³ý£¬¿ ÉÒÔ¸ù¾ÝÊÖÖ¸¼ä¾à¾ö¶¨ÏðÆ¤µÄÃæ»ý£¬·½±ãÓÖÊ¡ ÐÄ£¡
Ô´ÂëÔËÐнØÍ¼

Ô´ÂëÆ¬¶Î£º

  1. package com.hht.annotation;
  2. import java.io.File;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import java.util.List;
  6.   
  7. import android.app.AlertDialog;
  8. import android.app.Dialog;
  9. import android.app.Service;
  10. import android.content.BroadcastReceiver;
  11. import android.content.ComponentName;
  12. import android.content.Context;
  13. import android.content.DialogInterface;
  14. import android.content.Intent;
  15. import android.content.IntentFilter;
  16. import android.content.ServiceConnection;
  17. import android.content.SharedPreferences;
  18. import android.content.SharedPreferences.Editor;
  19. import android.gesture.GestureLibrary;
  20. import android.graphics.Color;
  21. import android.graphics.PixelFormat;
  22. import android.graphics.drawable.BitmapDrawable;
  23. import android.net.Uri;
  24. import android.os.Bundle;
  25. import android.os.Environment;
  26. import android.os.Handler;
  27. import android.os.IBinder;
  28. import android.os.Message;
  29. import android.os.Messenger;
  30. import android.os.RemoteException;
  31. import android.util.Log;
  32. import android.view.Gravity;
  33. import android.view.LayoutInflater;
  34. import android.view.View;
  35. import android.view.View.OnClickListener;
  36. import android.view.View.OnLongClickListener;
  37. import android.view.Window;
  38. import android.view.WindowManager;
  39. import android.view.WindowManager.LayoutParams;
  40. import android.view.animation.Animation;
  41. import android.view.animation.AnimationUtils;
  42. import android.widget.Button;
  43. import android.widget.CompoundButton;
  44. import android.widget.CompoundButton.OnCheckedChangeListener;
  45. import android.widget.ImageView;
  46. import android.widget.PopupWindow;
  47. import android.widget.PopupWindow.OnDismissListener;
  48. import android.widget.RadioButton;
  49. import android.widget.RadioGroup;
  50. import android.widget.TextView;
  51. import android.widget.ToggleButton;
  52.   
  53. import com.hht.annotation.whiteboard.WhiteboardView;
  54. import com.hht.annotation.R;
  55.   
  56.   
  57. public   class SuspendService extends Service implements OnClickListener,
  58. OnCheckedChangeListener,OnLongClickListener {
  59. private WhiteboardView mView;
  60. private WindowManager wm;
  61. private LayoutParams wmParams;
  62. private LayoutParams wmParamsBg,wmGestrueBg,wmPPtLayout;
  63. private LayoutParams wmview_l;
  64. private ImageView arror_l;
  65. protected   boolean isMove = false ;
  66. protected   float mXd;
  67. protected   float mYd;
  68. private View bgView,ppt_left_and_right,gestrueBg,flort,homebar;
  69. private ToggleButton tg_black_l,tg_bule_l,tg_red_l, tg_glitterpen_orange,tg_glitterpen_green,tg_glitterpen_yellow,tg_laserpen_red, tg_eraser_l,tg_allapp;
  70. private Button home_screenshot, home_usb, home_settings, home_dockbar_ic_browser,btn_app2;
  71.       
  72. private PopupWindow pw_usb,pw_l,pw_menu,pw_pen,pw_glitterpen,pw_laserpen;
  73. private View contentView_l,contentView_pw_pen,contentView_pw_glitterpen;
  74. private View layout_clear_l;
  75. private View layout_screenshot_l;
  76. private View layout_print_l;
  77.       
  78. private Animation tool_in_l_anim, tool_out_l_anim;
  79.       
  80. private Button btn_per,btn_next,btn_undo_l,btn_screenshot,btn_toolbox,btn_down,btn_menu,btn_home_down;
  81.       
  82. private   boolean isPencilChecked = false ; // ʾ Ƿ ѡ  
  83. private BroadcastReceiver myReceiver;
  84.       
  85. private   static   final   int HIDESMARTBAR = 1 ;
  86. private   static   final   int STARTSMARTBAR = 2 ;
  87. private   static   final   int SCREENSHOT = 3 ;
  88. protected   static   final   int CHECKEDPEN = 4 ;
  89. private   static   final   int HIDEINTVSETTINGS = 8 ;
  90. private   static   final   int CLEARVIEW = 12 ;
  91. private   static   final   int ISSCREENSHOTING = 13 ;
  92. private   static   final   int WHITEBOARDSCREENSHOT = 15 ;
  93. private   static   final   int SHOWSMARTBAR = 17 ;
  94. private   static   final   int SHOWLAUCHER = 18 ;
  95. private   static   final   int SHOWALLAPP = 19 ;
  96.       
  97. protected   int size = 5 ;
  98. protected   int pen = 0 ;
  99. protected   int color = Color.BLACK;
  100.       
  101. protected   int glitterpen = 7 ;
  102. protected   int glitterpenSize = 30 ;
  103. protected   int glitterpenColor = Color.parseColor( "#2bdb00" );
  104.       
  105. protected   int laserpen = 7 ;
  106. protected   int laserpenSize = 30 ;
  107. protected   int laserpenColor = Color.GREEN;
  108.       
  109. private ToggleButton currentToggleButton_l = null ;
  110. private String mStrSavePath = "" ;
  111. private   boolean mIsPrinting = false ;
  112. public   static   final String PRINT_PREPARE_ACTION = "com.hht.printer.prepare" ;
  113.       
  114. public   static    boolean ActionShowScreenshots = false ;
  115. private    boolean isViewShow = false ;
  116. public   static List<string> imagesList;
  117.       
  118. private GestureLibrary mLibrary;
  119. private    boolean needShowAnnotationBar = false ;
  120. private    boolean needTouchPen = false ;
  121. private    boolean needShowLeftAndRight;
  122.       
  123. String cmpNameTemp = null ;
  124. protected   boolean isFileBrowser;
  125. @Override  
  126. public IBinder onBind(Intent arg0) {
  127.           
  128. return   null ;
  129. }
  130.       
  131. private Handler handler = new Handler() {
  132.           
  133. @Override  
  134. public   void handleMessage(Message msg) {
  135. switch (msg.what) {
  136. case SHOWSMARTBAR:
  137. break ;
  138. case STARTSMARTBAR:
  139.                       
  140. if (!isFileBrowser && !isWidgetBar){
  141.                           
  142. if (isHome){
  143. homebar.setVisibility(View.VISIBLE);
  144. flort.setVisibility(View.GONE);
  145. isShowPw_l = false ;
  146. dismissPopupWindow_l();
  147. checkIfshowView( false , false );
  148. hiteGesture( true );
  149. ppt_left_and_right.setVisibility(View.GONE);
  150. } else {
  151. homebar.setVisibility(View.GONE);
  152. flort.setVisibility(View.VISIBLE);
  153. if (pw_usb != null && pw_usb.isShowing()) {
  154. pw_usb.dismiss();
  155. }
  156. }
  157.                           
  158. if (isWhiteBoard ||isRecents){
  159. hiteGesture( true );
  160. }
  161. }
  162. Log.e( "Others77" , "isScreenshot" +isScreenshot+ "currentToggleButton_l" +currentToggleButton_l);
  163. break ;
  164. case HIDESMARTBAR:
  165.               
  166. tg_eraser_l.setChecked( false );
  167. setPenciIsChecked(tg_black_l,tg_bule_l,tg_red_l,tg_glitterpen_orange,tg_glitterpen_green,tg_glitterpen_yellow,tg_laserpen_red);
  168. bgView.setVisibility(View.GONE);
  169. mView.setVisibility(View.GONE);
  170. flort.setVisibility(View.GONE);
  171. homebar.setVisibility(View.GONE);
  172. isShowPw_l = false ;
  173. dismissPopupWindow_l();
  174. if (pw_usb != null && pw_usb.isShowing()) {
  175. pw_usb.dismiss();
  176. }
  177. break ;
  178. case HIDEINTVSETTINGS:
  179. Intent wintent = new Intent( "mstar.tv.broadcast.service" );
  180. wintent.putExtra(Intent.EXTRA_KEY_EVENT, 920 );
  181. sendOrderedBroadcast(wintent, null );
  182. noHide = true ;
  183. hiteSmartBar( false );
  184. break ;
  185.                   
  186. case SCREENSHOT:
  187. takeScreenshot( true );
  188. break ;
  189. case WHITEBOARDSCREENSHOT:
  190.                   
  191. Intent intent = new Intent( "com.hht.whiteboard.getaction" );
  192. intent.putExtra( "snapshot" , 1 );
  193. sendBroadcast(intent);
  194. break ;
  195. case ISSCREENSHOTING:
  196. isScreenshoting = false ;
  197. btn_screenshot.setEnabled( true );
  198. if (layout_print_l!= null ){
  199. layout_print_l.setEnabled( true );
  200. }
  201. break ;
  202. case CHECKEDPEN:
  203. if (currentToggleButton_l!= null ){
  204.                       
  205. currentToggleButton_l.setChecked( false );
  206. }
  207. hiteGesture( true );
  208. checkIfshowView( false , false );
  209. break ;
  210. case CLEARVIEW:
  211. clear();
  212. break ;
  213. case SHOWALLAPP:
  214. sendBroadcast( new Intent( "INTENT.ACTION.SHOW.ALLAPP" ));
  215. break ;
  216. case SHOWLAUCHER:
  217. sendBroadcast( new Intent( "INTENT.ACTION.SHOW.HOME" ));
  218. break ;
  219. default :
  220. break ;
  221.                   
  222. }
  223. super .handleMessage(msg);
  224. }
  225. };
  226. private   boolean removeAllView;
  227. private   boolean removeView;
  228. private   boolean noHide;
  229. private   boolean isScreenshot;
  230. private   boolean isHome;
  231. private   boolean isWhiteBoard = false ;
  232. public   boolean isRecents;
  233. public   boolean isWidgetBar;
  234. private RadioButton myRadioButton2;
  235. private   boolean isCrash;
  236. private   boolean isScreenshoting;
  237. private   boolean isShowPw_l;
  238. private   boolean isShowPw_l2;
  239. @Override  
  240. public   void onCreate() {
  241.           
  242. sp = getSharedPreferences( "smart_config" , MODE_PRIVATE);
  243.           
  244. tool_in_l_anim = AnimationUtils
  245. .loadAnimation( this , R.anim.translate_in);
  246. tool_out_l_anim = AnimationUtils.loadAnimation( this ,
  247. R.anim.translate_out);
  248. //ppt  
  249. ppt_left_and_right = LayoutInflater.from( this ).inflate(R.layout.ppt_left_and_right, null );
  250. btn_per = (Button) ppt_left_and_right.findViewById(R.id.btn_per);
  251. btn_next = (Button) ppt_left_and_right.findViewById(R.id.btn_next);
  252. btn_per.setOnClickListener( this );
  253. btn_next.setOnClickListener( this );
  254.           
  255. // Ҷ ߵ layout  
  256. flort = LayoutInflater.from( this ).inflate(R.layout.flort_pad_lf, null );
  257. isShowPw_l = false ;
  258. dismissPopupWindow_l();
  259. if (pw_usb != null && pw_usb.isShowing()) {
  260. pw_usb.dismiss();
  261. }
  262. // ؼ ij ʼ ͼ  
  263. tg_black_l = (ToggleButton) flort.findViewById(R.id.tg_black_l);
  264. currentToggleButton_l = tg_black_l;
  265. tg_black_l.setChecked( true );
  266. tg_bule_l = (ToggleButton) flort.findViewById(R.id.tg_bule_l);
  267. tg_red_l = (ToggleButton) flort.findViewById(R.id.tg_red_l);
  268. tg_glitterpen_orange = (ToggleButton) flort.findViewById(R.id.tg_glitterpen_orange);
  269. tg_glitterpen_green = (ToggleButton) flort.findViewById(R.id.tg_glitterpen_green);
  270. tg_glitterpen_yellow = (ToggleButton) flort.findViewById(R.id.tg_glitterpen_yellow);
  271. tg_laserpen_red = (ToggleButton) flort.findViewById(R.id.tg_laserpen_red);
  272. tg_eraser_l = (ToggleButton) flort.findViewById(R.id.tg_eraser_l);
  273.           
  274.           
  275. error_l = (ImageView) flort.findViewById(R.id.error_l);
  276. btn_undo_l = (Button) flort.findViewById(R.id.btn_undo_l);
  277. btn_screenshot = (Button) flort.findViewById(R.id.btn_screenshot);
  278. btn_toolbox = (Button) flort.findViewById(R.id.btn_toolbox);
  279. btn_down = (Button) flort.findViewById(R.id.btn_down);
  280. btn_menu = (Button) flort.findViewById(R.id.btn_menu);
  281.           
  282. tg_black_l.setOnCheckedChangeListener( this );
  283. tg_bule_l.setOnCheckedChangeListener( this );
  284. tg_red_l.setOnCheckedChangeListener( this );
  285. tg_glitterpen_orange.setOnCheckedChangeListener( this );
  286. tg_glitterpen_green.setOnCheckedChangeListener( this );
  287. tg_glitterpen_yellow.setOnCheckedChangeListener( this );
  288. tg_laserpen_red.setOnCheckedChangeListener( this );
  289. tg_eraser_l.setOnCheckedChangeListener( this );
  290. tg_bule_l.setOnCheckedChangeListener( this );
  291.           
  292. tg_black_l.setOnLongClickListener( this );
  293. tg_bule_l.setOnLongClickListener( this );
  294. tg_red_l.setOnLongClickListener( this );
  295. tg_glitterpen_orange.setOnLongClickListener( this );
  296. tg_glitterpen_green.setOnLongClickListener( this );
  297. tg_glitterpen_yellow.setOnLongClickListener( this );
  298. tg_bule_l.setOnLongClickListener( this );
  299. tg_laserpen_red.setOnLongClickListener( this );
  300.           
  301. error_l.setOnClickListener( this );
  302. btn_undo_l.setOnClickListener( this );
  303. btn_screenshot.setOnClickListener( this );
  304. btn_toolbox.setOnClickListener( this );
  305. btn_down.setOnClickListener( this );
  306. btn_menu.setOnClickListener( this );
  307. // homeBarLayout  
  308. homebar = LayoutInflater.from( this ).inflate(R.layout.homebar, null );
  309. // ؼ ij ʼ ͼ  
  310. home_screenshot = (Button) homebar.findViewById(R.id.home_screenshot);
  311. home_usb = (Button) homebar.findViewById(R.id.home_usb);
  312. home_settings = (Button) homebar.findViewById(R.id.home_settings);
  313. home_dockbar_ic_browser = (Button) homebar.findViewById(R.id.home_dockbar_ic_browser);
  314.           
  315. btn_app2 = (Button) homebar.findViewById(R.id.btn_app2);
  316. tg_allapp = (ToggleButton) homebar.findViewById(R.id.tg_allapp);
  317. btn_home_down = (Button) homebar.findViewById(R.id.btn_home_down);
  318.           
  319.           
  320. home_screenshot.setOnClickListener( this );
  321. home_usb.setOnClickListener( this );
  322. home_settings.setOnClickListener( this );
  323. home_dockbar_ic_browser.setOnClickListener( this );
  324. btn_app2.setOnClickListener( this );
  325. tg_allapp.setOnCheckedChangeListener( this );
  326. btn_home_down.setOnClickListener( this );
  327.           
  328.           
  329. bgView = LayoutInflater.from( this ).inflate(R.layout.annotation_bg, null );
  330. gestrueBg = LayoutInflater.from( this ).inflate(R.layout.gestrue_bg, null );
  331. //  
  332. mView = new WhiteboardView(getBaseContext());
  333. mView.setBackgroundColor(Color.TRANSPARENT);
  334. mView.setFocusable( true );
  335.           
  336. mView.requestFocus();
  337.           
  338. mView.setFocusableInTouchMode( true );
  339. // ʽ ӻ ÈÉʵ ֵ §¹  
  340. wm = (WindowManager) getApplicationContext().getSystemService( "window" );
  341. initUI();
  342.           
  343. }
  344. private   void initUI(){
  345. smartbar_translate_in = AnimationUtils.loadAnimation( this ,
  346. R.anim.smartbar_translate_in);
  347. smartbar_translate_out = AnimationUtils.loadAnimation( this ,
  348. R.anim.smartbar_translate_out);
  349.           
  350. wmParamsBg = new WindowManager.LayoutParams();
  351. wmParamsBg.type = 2002 ;
  352. wmParamsBg.format = 1 ;
  353. wmParamsBg.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
  354. | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
  355. wmParamsBg.width = WindowManager.LayoutParams.FILL_PARENT;
  356. wmParamsBg.height = WindowManager.LayoutParams.FILL_PARENT;
  357. bgView.setVisibility(View.VISIBLE);
  358. wm.addView(bgView, wmParamsBg);
  359.           
  360. wmGestrueBg = new WindowManager.LayoutParams();
  361. wmGestrueBg.type = 2002 ;
  362. wmGestrueBg.format = 1 ;
  363. wmGestrueBg.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
  364. | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
  365. wmGestrueBg.width = WindowManager.LayoutParams.FILL_PARENT;
  366. wmGestrueBg.height = WindowManager.LayoutParams.FILL_PARENT;
  367. wm.addView(gestrueBg, wmGestrueBg);
  368. gestrueBg.setVisibility(View.GONE);
  369.           
  370. wmPPtLayout = new WindowManager.LayoutParams();
  371. wmPPtLayout.type = 2002 ;
  372. wmPPtLayout.format = PixelFormat.TRANSLUCENT;
  373. // wmview_l.x = 200;  
  374. wmPPtLayout.y = 215 ;
  375. wmPPtLayout.gravity = Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM;
  376. wmPPtLayout.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
  377. | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
  378. wmPPtLayout.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;
  379. wmPPtLayout.width = WindowManager.LayoutParams.WRAP_CONTENT;
  380. wmPPtLayout.height = WindowManager.LayoutParams.WRAP_CONTENT;
  381. wm.addView(ppt_left_and_right, wmPPtLayout);
  382. ppt_left_and_right.setVisibility(View.GONE);
  383.           
  384. wmParams = new WindowManager.LayoutParams();
  385. wmParams.type = 2002 ;
  386. wmParams.format = 1 ;
  387. wmParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
  388. | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
  389. wmParams.width = WindowManager.LayoutParams.FILL_PARENT;
  390. wmParams.height = WindowManager.LayoutParams.FILL_PARENT;
  391. mView.setVisibility(View.VISIBLE);
  392. wm.addView(mView, wmParams);
  393.           
  394. // ߱ ѡ ˵  
  395. wmview_l = new WindowManager.LayoutParams();
  396. wmview_l.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
  397. | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
  398. wmview_l.gravity = Gravity.LEFT|Gravity.TOP;
  399. wmview_l.format = PixelFormat.TRANSLUCENT;
  400. // wmview_l.x = 800;  
  401. wmview_l.y = 98 ;
  402. wmview_l.width =WindowManager.LayoutParams.WRAP_CONTENT;;
  403. wmview_l.height = WindowManager.LayoutParams.WRAP_CONTENT;; // λ ƶ Ѫˢ £ ȡ պ ͸  
  404. wmview_l.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;
  405. wm.addView(flort, wmview_l);
  406. wmview_l.height = 150 ;
  407. wm.addView(homebar, wmview_l);
  408. homebar.setVisibility(View.GONE);
  409.           
  410. if (isPencilChecked == false ) {
  411. isViewShow = false ;
  412. }
  413. Log.e( "Others77" , "oncreate==isFileBrowser=" +isFileBrowser+ "isWhiteBoard=" +isWhiteBoard+ "isHome=" +isHome+ "====" );
  414.           
  415. // չ㲥ز  
  416. myReceiver = new MyReceiver();
  417. filter = new IntentFilter();
  418. filter.addAction( "com.hht.hidesmartbar" );
  419. filter.addAction( "com.hht.hidesmartbar.for.ppt" );
  420. filter.addAction( "com.hht.showsmartbar" );
  421. filter.addAction( "com.widget.open" );
  422. filter.addAction( "com.widget.close" );
  423. filter.addAction( "com.hht.hidemartbar.new" );
  424. filter.addAction( "com.hht.hidemartbar.system" );
  425. filter.addAction( "com.hht.toolbar.anno.paint_gone" );
  426. filter.addAction( "com.hht.toolbar.anno.paint_show" );
  427. filter.addAction( "com.hht.showmartbar.system" );
  428. filter.addAction( "com.hht.showmartbar.system.recents" );
  429. filter.addAction( "com.hht.hidemartbar.new.home" );
  430. filter.addAction( "com.hht.showmartbar.new.home" );
  431. filter.addAction( "com.hht.showmartbar.new.screenshot" );
  432.           
  433. filter.addAction( "com.hht.hidemartbar.new.fb" );
  434. filter.addAction( "com.hht.showmartbar.new.fb" );
  435. filter.addAction( "com.hht.showmartbar.new.wb" );
  436. filter.addAction( "com.hht.showmartbar.new.wb.set" );
  437. filter.addAction( "com.hht.showmartbar.new.crash" );
  438. filter.addAction( "com.hht.showmartbar.new" );
  439. filter.addAction( "com.hht.hidesmartbar.dismisspop" );
  440. filter.setPriority( 1000 );
  441. registerReceiver(myReceiver, filter);
  442.           
  443. }
  444. private   void checkIfshowView( boolean showView, boolean screenshot){
  445. if (showView){
  446. if (flort.getVisibility() ==View.GONE && homebar.getVisibility() ==View.GONE ){
  447. } else {
  448. mView.setVisibility(View.VISIBLE);
  449. bgView.setVisibility(View.VISIBLE);
  450. }
  451. } else {
  452. if (screenshot){
  453. mView.setVisibility(View.INVISIBLE);
  454. bgView.setVisibility(View.INVISIBLE);
  455. } else {
  456. mView.setVisibility(View.GONE);
  457. bgView.setVisibility(View.GONE);
  458. }
  459. }
  460. }
  461. private   void isLaucher() {
  462. noHide = false ;
  463. checkIfshowView( false , false );
  464. hiteGesture( true );
  465. homebar.setVisibility(View.VISIBLE);
  466. flort.setVisibility(View.GONE);
  467. dismissPopupWindow_l();
  468. tg_eraser_l.setChecked( false );
  469. setPenciIsChecked(tg_black_l,tg_bule_l,tg_red_l,tg_glitterpen_orange,tg_glitterpen_green,tg_glitterpen_yellow,tg_laserpen_red);
  470. Log.e( "Others77" , "1515" );
  471.           
  472. }
  473. private   void hiteGesture( boolean hite) {
  474. if (hite){
  475. ppt_left_and_right.setVisibility(View.GONE);
  476. gestrueBg.setVisibility(View.GONE);
  477. } else {
  478. ppt_left_and_right.setVisibility(View.VISIBLE);
  479. gestrueBg.setVisibility(View.VISIBLE);
  480. }
  481.           
  482. }
  483. class MyReceiver extends BroadcastReceiver {
  484.           
  485. @Override  
  486. public   void onReceive(Context context, Intent intent) {
  487.               
  488. Editor editor = sp.edit();
  489.               
  490. if (intent.getAction().equals( "com.hht.hidesmartbar.dismisspop" )){
  491. if (pw_l != null && pw_l.isShowing()) {
  492. pw_l.dismiss();
  493. }

Ô´ÂëµØÖ·£ºhttp://down..com/data/1978601

<<:  Nine-grid password lock entry program

>>:  Cocos 2d-JS Chinese version API documentation is officially launched

Recommend

Detailed explanation of the new rules for huge amount of Qianchuan investment

I believe everyone is no stranger to the saying &...

Redmi Pro vs Meizu E review

Having the three major series of Meizu Blue, MX a...

Hello 5C, Goodbye 5C.

According to Taiwan's Commercial Times, Apple...

Should you turn off your phone before going to bed at night?

Before going to bed at night Do you have the habi...

Thailand passes bill to legalize same-sex marriage (full text)

Thailand's cabinet approves bill to legalize ...

Unboxing the 1,000-yuan Redmi Note

There are two versions of Redmi Note, both of whic...

Even Tencent has given in like this, so how powerful is Apple?

WeChat, the national app, has recently made headl...

How to plan group buying activities on mini programs?

1. Group buying mode selection 1. Split the money...

Kobe Bryant endorses Ele.me, and it only takes five steps to pass the level!

These days, Kris Wu is the spokesperson for Honor...

From entry level to advanced level, the seven-step account creation process

From entry level to advanced level, a brief intro...

The implementation and methods of community operation!

WeChat, Weibo, Douyin, Tieba, these products are ...

How do physical stores operate private domain traffic?

Private domain traffic is the life-saving straw f...