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

App promotion plan: free channels and paid channels!

In the initial stage of a startup team, how shoul...

The whole process of liver injury

Loading long image... Source: CCTV News...

Remind your family and friends! Don’t use this posture to browse your phone

Lying sideways playing with mobile phone Not only...

Top 1000 Mobile Apps in October 2016

I believe that every time there is a more intuiti...

How do brands engage fashion and beauty KOLs?

This article introduces several key points that b...

What is the future of virtual reality? See what Google VR chief describes

Google Cardboard is one of the cheapest virtual r...

Where has the coronavirus gone? Will it disappear? Experts respond

Recently, the question of "where has the new...

How to improve the style of APP interface in details?

[[140092]] The times are always changing in a spi...