├── .gitignore ├── .idea ├── .gitignore ├── .name ├── compiler.xml ├── dictionaries │ └── 28821.xml ├── gradle.xml ├── jarRepositories.xml ├── misc.xml └── vcs.xml ├── README.md ├── app ├── .gitignore ├── build.gradle ├── build.properties ├── factory_test_config.json ├── libs │ ├── NativeAudioRecord-release-1.0.0.aar │ ├── nd01sdk-release-v1.0.2.aar │ └── tbapi-release_1.0.13.aar ├── proguard-rules.pro ├── src │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── ayst │ │ │ └── factorytest │ │ │ └── ExampleInstrumentedTest.java │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ │ └── bin │ │ │ │ ├── iperf │ │ │ │ └── iperf3 │ │ ├── java │ │ │ └── com │ │ │ │ └── ayst │ │ │ │ └── factorytest │ │ │ │ ├── App.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── adapter │ │ │ │ ├── GpioItemAdapter.java │ │ │ │ ├── KeyItemAdapter.java │ │ │ │ ├── LedItemAdapter.java │ │ │ │ ├── NarItemAdapter.java │ │ │ │ ├── PwmItemAdapter.java │ │ │ │ ├── StringItemAdapter.java │ │ │ │ ├── TestItemAdapter.java │ │ │ │ ├── UartItemAdapter.java │ │ │ │ └── WifiListAdapter.java │ │ │ │ ├── base │ │ │ │ ├── BaseActivity.java │ │ │ │ └── ChildTestActivity.java │ │ │ │ ├── data │ │ │ │ ├── TestItemManager.java │ │ │ │ └── TestResultExport.java │ │ │ │ ├── items │ │ │ │ ├── AccSensorActivity.java │ │ │ │ ├── BacklightTestActivity.java │ │ │ │ ├── BatteryTestActivity.java │ │ │ │ ├── BluetoothTestActivity.java │ │ │ │ ├── CameraTestActivity.java │ │ │ │ ├── EthernetTestActivity.java │ │ │ │ ├── GpioTestActivity.java │ │ │ │ ├── HumanSensorActivity.java │ │ │ │ ├── InfoTestActivity.java │ │ │ │ ├── KeyTestActivity.java │ │ │ │ ├── LcdTestActivity.java │ │ │ │ ├── LedTestActivity.java │ │ │ │ ├── LightSensorActivity.java │ │ │ │ ├── MobileNetTestActivity.java │ │ │ │ ├── ND01TestActivity.java │ │ │ │ ├── NarTestActivity.java │ │ │ │ ├── PwmTestActivity.java │ │ │ │ ├── RecordTestActivity.java │ │ │ │ ├── RegularBootTestActivity.java │ │ │ │ ├── SdcardTestActivity.java │ │ │ │ ├── SpeakerTestActivity.java │ │ │ │ ├── TemperatureSensorTestActivity.java │ │ │ │ ├── TouchTestActivity.java │ │ │ │ ├── UartTestActivity.java │ │ │ │ ├── UsbTestActivity.java │ │ │ │ ├── WatchdogTestActivity.java │ │ │ │ ├── WiFiTransferTestActivity.java │ │ │ │ ├── WiegandTestActivity.java │ │ │ │ └── WifiTestActivity.java │ │ │ │ ├── model │ │ │ │ ├── GpioItem.java │ │ │ │ ├── KeyItem.java │ │ │ │ ├── LedItem.java │ │ │ │ ├── ND01Param.java │ │ │ │ ├── NarParam.java │ │ │ │ ├── PwmItem.java │ │ │ │ ├── ResultEvent.java │ │ │ │ ├── TestItem.java │ │ │ │ ├── UartItem.java │ │ │ │ ├── WiFiParam.java │ │ │ │ ├── WiFiTransferParam.java │ │ │ │ └── WiegandParam.java │ │ │ │ ├── utils │ │ │ │ ├── AppUtils.java │ │ │ │ ├── DataConversion.java │ │ │ │ ├── Mcu.java │ │ │ │ └── SPUtils.java │ │ │ │ └── view │ │ │ │ └── TouchTestView.java │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ ├── bg_container.xml │ │ │ ├── bg_recyclerview.xml │ │ │ ├── bg_state_normal.xml │ │ │ ├── bg_state_selected.xml │ │ │ ├── bg_state_selector.xml │ │ │ ├── btn_fail_normal.xml │ │ │ ├── btn_fail_pressed.xml │ │ │ ├── btn_fail_selector.xml │ │ │ ├── btn_start_normal.xml │ │ │ ├── btn_start_pressed.xml │ │ │ ├── btn_start_selector.xml │ │ │ ├── btn_success_normal.xml │ │ │ ├── btn_success_pressed.xml │ │ │ ├── btn_success_selector.xml │ │ │ ├── btn_text_selector.xml │ │ │ ├── btn_touch_normal.xml │ │ │ ├── btn_touch_selected.xml │ │ │ ├── btn_touch_selector.xml │ │ │ ├── edt_line.xml │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout-port │ │ │ ├── activity_child_base.xml │ │ │ └── content_temperature_sensor_test.xml │ │ │ ├── layout │ │ │ ├── activity_child_base.xml │ │ │ ├── activity_main.xml │ │ │ ├── content_acc_sensor.xml │ │ │ ├── content_backlight_test.xml │ │ │ ├── content_battery_test.xml │ │ │ ├── content_bluetooth_test.xml │ │ │ ├── content_camera_test.xml │ │ │ ├── content_ethernet_test.xml │ │ │ ├── content_gpio_test.xml │ │ │ ├── content_human_sensor.xml │ │ │ ├── content_info_test.xml │ │ │ ├── content_key_test.xml │ │ │ ├── content_lcd_test.xml │ │ │ ├── content_led_test.xml │ │ │ ├── content_light_sensor.xml │ │ │ ├── content_mic_test.xml │ │ │ ├── content_modem_test.xml │ │ │ ├── content_nar_test.xml │ │ │ ├── content_nd01_test.xml │ │ │ ├── content_pwm_test.xml │ │ │ ├── content_regular_boot_test.xml │ │ │ ├── content_sdcard_test.xml │ │ │ ├── content_speaker_test.xml │ │ │ ├── content_temperature_sensor_test.xml │ │ │ ├── content_touch_test.xml │ │ │ ├── content_uart_test.xml │ │ │ ├── content_usb_test.xml │ │ │ ├── content_watchdog_test.xml │ │ │ ├── content_wiegand_test.xml │ │ │ ├── content_wifi_test.xml │ │ │ ├── content_wifi_transfer_test.xml │ │ │ ├── device_item.xml │ │ │ ├── layout_rv_item.xml │ │ │ ├── layout_test_item.xml │ │ │ └── wifi_list_item.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_close.png │ │ │ ├── ic_device.png │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_wait_0.png │ │ │ ├── ic_wait_1.png │ │ │ ├── ic_wait_2.png │ │ │ ├── ic_wait_3.png │ │ │ ├── ic_wait_4.png │ │ │ ├── ic_wait_5.png │ │ │ ├── ic_wait_6.png │ │ │ ├── ic_wait_7.png │ │ │ ├── ic_wait_8.png │ │ │ ├── ic_wifi_0.png │ │ │ ├── ic_wifi_1.png │ │ │ ├── ic_wifi_2.png │ │ │ ├── ic_wifi_3.png │ │ │ ├── ic_wifi_connected.png │ │ │ └── ic_wifi_pwd.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── raw │ │ │ └── play.mp3 │ │ │ ├── values-sw480dp │ │ │ └── dimens.xml │ │ │ ├── values-sw600dp │ │ │ └── dimens.xml │ │ │ ├── values-xhdpi │ │ │ └── dimens.xml │ │ │ ├── values-zh │ │ │ └── strings.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ └── test │ │ └── java │ │ └── com │ │ └── ayst │ │ └── factorytest │ │ └── ExampleUnitTest.java └── system.keystore ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screenshots ├── home.png ├── microphone.png ├── result.png └── touch.png ├── serialport ├── .gitignore ├── CMakeLists.txt ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── cpp │ ├── SerialPort.c │ ├── SerialPort.h │ └── gen_SerialPort_h.sh │ ├── java │ └── android │ │ └── serialport │ │ ├── SerialPort.java │ │ └── SerialPortFinder.java │ └── res │ └── values │ └── strings.xml ├── settings.gradle └── xui ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src └── main ├── AndroidManifest.xml ├── java └── com │ └── xuexiang │ └── xui │ ├── UIConfig.java │ ├── UIConsts.java │ ├── XUI.java │ ├── XUIInitProvider.java │ ├── adapter │ ├── FragmentAdapter.java │ ├── FragmentStateAdapter.java │ ├── listview │ │ ├── BaseListAdapter.java │ │ └── XListAdapter.java │ ├── recyclerview │ │ ├── BaseRecyclerAdapter.java │ │ ├── DividerItemDecoration.java │ │ ├── GridDividerItemDecoration.java │ │ ├── RecyclerViewHolder.java │ │ ├── XGridLayoutManager.java │ │ ├── XLinearLayoutManager.java │ │ ├── XRecyclerAdapter.java │ │ └── sticky │ │ │ ├── FullSpanUtils.java │ │ │ ├── OnStickyChangedListener.java │ │ │ ├── StickyHeadContainer.java │ │ │ └── StickyItemDecoration.java │ └── simple │ │ ├── AdapterItem.java │ │ ├── ExpandableItem.java │ │ ├── ViewHolder.java │ │ ├── XUISimpleAdapter.java │ │ └── XUISimpleExpandableListAdapter.java │ ├── logs │ ├── ILogger.java │ ├── LogcatLogger.java │ └── UILog.java │ ├── utils │ ├── CollectionUtils.java │ ├── ColorUtils.java │ ├── CountDownButtonHelper.java │ ├── DensityUtils.java │ ├── DeviceUtils.java │ ├── DividerUtils.java │ ├── DrawableUtils.java │ ├── KeyboardUtils.java │ ├── ResUtils.java │ ├── SnackbarUtils.java │ ├── SpanUtils.java │ ├── StatusBarUtils.java │ ├── ThemeUtils.java │ ├── Utils.java │ ├── ViewUtils.java │ └── WidgetUtils.java │ └── widget │ ├── StickyNestedScrollView.java │ ├── XUIKeyboardScrollView.java │ ├── XUIObservableScrollView.java │ ├── XUIWrapContentExpandableListView.java │ ├── XUIWrapContentListView.java │ ├── XUIWrapContentScrollView.java │ ├── actionbar │ ├── TitleBar.java │ └── TitleUtils.java │ ├── activity │ ├── BaseGuideActivity.java │ └── BaseSplashActivity.java │ ├── alpha │ ├── IAlphaViewHelper.java │ ├── XUIAlphaButton.java │ ├── XUIAlphaFrameLayout.java │ ├── XUIAlphaImageButton.java │ ├── XUIAlphaImageView.java │ ├── XUIAlphaLinearLayout.java │ ├── XUIAlphaRelativeLayout.java │ ├── XUIAlphaTextView.java │ └── XUIAlphaViewHelper.java │ ├── banner │ ├── anim │ │ ├── BaseAnimator.java │ │ ├── select │ │ │ ├── RotateEnter.java │ │ │ └── ZoomInEnter.java │ │ └── unselect │ │ │ └── NoAnimExist.java │ ├── recycler │ │ ├── BannerLayout.java │ │ ├── RecyclerViewBannerBase.java │ │ └── layout │ │ │ ├── BannerLayoutManager.java │ │ │ ├── CenterScrollListener.java │ │ │ ├── CenterSnapHelper.java │ │ │ └── OverFlyingLayoutManager.java │ ├── transform │ │ ├── DepthTransformer.java │ │ ├── FadeSlideTransformer.java │ │ ├── FlowTransformer.java │ │ ├── RotateDownTransformer.java │ │ ├── RotateUpTransformer.java │ │ └── ZoomOutSlideTransformer.java │ └── widget │ │ ├── banner │ │ ├── BannerItem.java │ │ ├── SimpleGuideBanner.java │ │ ├── SimpleImageBanner.java │ │ ├── SimpleTextBanner.java │ │ └── base │ │ │ ├── BaseBanner.java │ │ │ ├── BaseImageBanner.java │ │ │ └── BaseIndicatorBanner.java │ │ └── loopviewpager │ │ ├── FixedSpeedScroller.java │ │ ├── LoopPagerAdapterWrapper.java │ │ └── LoopViewPager.java │ ├── behavior │ ├── AnimateHelper.java │ ├── BaseBehavior.java │ ├── BottomNavigationViewBehavior.java │ ├── FloatingActionButtonBehavior.java │ ├── ScaleAnimateHelper.java │ ├── ToolBarBehavior.java │ └── TranslateAnimateHelper.java │ ├── button │ ├── ButtonView.java │ ├── CountDownButton.java │ ├── RippleView.java │ ├── SmoothCheckBox.java │ ├── SwitchIconView.java │ ├── roundbutton │ │ ├── RoundButton.java │ │ └── RoundDrawable.java │ ├── shadowbutton │ │ ├── BaseShadowButton.java │ │ ├── RippleShadowShadowButton.java │ │ ├── ShadowButton.java │ │ └── ShadowImageView.java │ ├── shinebutton │ │ ├── PorterImageView.java │ │ ├── PorterShapeImageView.java │ │ ├── ShineAnimator.java │ │ ├── ShineButton.java │ │ ├── ShineView.java │ │ └── interpolator │ │ │ ├── Ease.java │ │ │ ├── EasingInterpolator.java │ │ │ └── EasingProvider.java │ └── switchbutton │ │ ├── ColorUtils.java │ │ └── SwitchButton.java │ ├── dialog │ ├── BaseDialog.java │ ├── DialogLoader.java │ ├── GuideViewDialog.java │ ├── LoadingDialog.java │ ├── MiniLoadingDialog.java │ ├── bottomsheet │ │ ├── BottomSheet.java │ │ └── BottomSheetItemView.java │ ├── materialdialog │ │ ├── CustomMaterialDialog.java │ │ ├── DefaultRvAdapter.java │ │ ├── DialogAction.java │ │ ├── DialogBase.java │ │ ├── DialogInit.java │ │ ├── GravityEnum.java │ │ ├── MaterialDialog.java │ │ ├── StackingBehavior.java │ │ ├── Theme.java │ │ ├── internal │ │ │ ├── AllCapsTransformationMethod.java │ │ │ ├── MDAdapter.java │ │ │ ├── MDButton.java │ │ │ ├── MDRootLayout.java │ │ │ ├── MDTintHelper.java │ │ │ └── ThemeSingleton.java │ │ ├── simplelist │ │ │ ├── MaterialSimpleListAdapter.java │ │ │ └── MaterialSimpleListItem.java │ │ └── util │ │ │ └── RippleHelper.java │ └── strategy │ │ ├── IDialogStrategy.java │ │ ├── InputCallback.java │ │ ├── InputInfo.java │ │ └── impl │ │ ├── AlertDialogStrategy.java │ │ └── MaterialDialogStrategy.java │ ├── edittext │ ├── AsteriskPasswordTransformationMethod.java │ ├── ClearEditText.java │ ├── MultiLineEditText.java │ ├── PasswordEditText.java │ ├── ValidatorEditText.java │ ├── materialedittext │ │ ├── MaterialEditText.java │ │ └── validation │ │ │ ├── METLengthChecker.java │ │ │ ├── METValidator.java │ │ │ ├── NotAllowEmptyValidator.java │ │ │ └── RegexpValidator.java │ └── verify │ │ ├── PwdEditText.java │ │ ├── PwdTextView.java │ │ ├── TInputConnection.java │ │ └── VerifyCodeEditText.java │ ├── flowlayout │ ├── BaseTagAdapter.java │ ├── DefaultFlowTagAdapter.java │ ├── FlowLayout.java │ └── FlowTagLayout.java │ ├── grouplist │ ├── XUICommonListItemView.java │ ├── XUIGroupListSectionHeaderFooterView.java │ └── XUIGroupListView.java │ ├── guidview │ ├── Calculator.java │ ├── DismissListener.java │ ├── FocusShape.java │ ├── GuideCaseQueue.java │ ├── GuideCaseView.java │ ├── GuideImageView.java │ ├── OnCompleteListener.java │ ├── OnViewInflateListener.java │ └── Utils.java │ ├── imageview │ ├── IconImageView.java │ ├── ImageLoader.java │ ├── RadiusImageView.java │ ├── SignatureView.java │ ├── crop │ │ ├── AspectRatioUtil.java │ │ ├── CenterHandleHelper.java │ │ ├── CornerHandleHelper.java │ │ ├── CropImageType.java │ │ ├── CropImageView.java │ │ ├── CropOverlayView.java │ │ ├── Edge.java │ │ ├── EdgePair.java │ │ ├── Handle.java │ │ ├── HandleHelper.java │ │ ├── HandleUtil.java │ │ ├── HorizontalHandleHelper.java │ │ ├── ImageViewUtil.java │ │ ├── PaintUtil.java │ │ └── VerticalHandleHelper.java │ ├── edit │ │ ├── BitmapUtil.java │ │ ├── BrushDrawingView.java │ │ ├── BrushViewChangeListener.java │ │ ├── CustomEffect.java │ │ ├── FilterImageView.java │ │ ├── GLToolbox.java │ │ ├── ImageFilterView.java │ │ ├── LinePath.java │ │ ├── MultiTouchListener.java │ │ ├── OnBitmapSaveListener.java │ │ ├── OnPhotoEditorListener.java │ │ ├── PhotoEditor.java │ │ ├── PhotoEditorView.java │ │ ├── PhotoEnhance.java │ │ ├── PhotoFilter.java │ │ ├── SaveSettings.java │ │ ├── ScaleGestureDetector.java │ │ ├── TextStyleBuilder.java │ │ ├── TextureRenderer.java │ │ ├── Vector2D.java │ │ └── ViewType.java │ ├── nine │ │ ├── GridImageView.java │ │ ├── ItemImageClickListener.java │ │ ├── ItemImageLongClickListener.java │ │ ├── NineGridImageView.java │ │ └── NineGridImageViewAdapter.java │ ├── photoview │ │ ├── Compat.java │ │ ├── DefaultOnDoubleTapListener.java │ │ ├── IPhotoView.java │ │ ├── PhotoView.java │ │ ├── PhotoViewAttacher.java │ │ ├── gestures │ │ │ ├── CupcakeGestureDetector.java │ │ │ ├── EclairGestureDetector.java │ │ │ ├── FroyoGestureDetector.java │ │ │ ├── IGestureDetector.java │ │ │ ├── OnGestureListener.java │ │ │ └── VersionedGestureDetector.java │ │ └── scrollerproxy │ │ │ ├── GingerScroller.java │ │ │ ├── IcsScroller.java │ │ │ ├── PreGingerScroller.java │ │ │ └── ScrollerProxy.java │ ├── preview │ │ ├── MediaLoader.java │ │ ├── PreviewBuilder.java │ │ ├── enitity │ │ │ └── IPreviewInfo.java │ │ ├── loader │ │ │ ├── GlideMediaLoader.java │ │ │ ├── IMediaLoader.java │ │ │ ├── ISimpleTarget.java │ │ │ └── OnVideoClickListener.java │ │ ├── ui │ │ │ ├── BasePhotoFragment.java │ │ │ ├── PreviewActivity.java │ │ │ └── VideoPlayerActivity.java │ │ └── view │ │ │ ├── BezierBannerView.java │ │ │ ├── PhotoViewPager.java │ │ │ └── SmoothImageView.java │ └── strategy │ │ ├── AlignEnum.java │ │ ├── DiskCacheStrategyEnum.java │ │ ├── IImageLoadStrategy.java │ │ ├── ILoadListener.java │ │ ├── LoadOption.java │ │ └── impl │ │ └── GlideImageLoadStrategy.java │ ├── layout │ ├── ExpandableLayout.java │ ├── IXUILayout.java │ ├── XUIButton.java │ ├── XUIFrameLayout.java │ ├── XUILayoutHelper.java │ ├── XUILinearLayout.java │ ├── XUIRelativeLayout.java │ ├── interpolator │ │ ├── FastOutSlowInInterpolator.java │ │ └── LookupTableInterpolator.java │ └── linkage │ │ ├── ChildLinkageEvent.java │ │ ├── ILinkageScroll.java │ │ ├── LinkageScrollHandler.java │ │ ├── LinkageScrollHandlerAdapter.java │ │ ├── LinkageScrollLayout.java │ │ ├── PosIndicator.java │ │ └── view │ │ ├── LinkageLinearLayout.java │ │ ├── LinkageRecyclerView.java │ │ ├── LinkageScrollView.java │ │ ├── LinkageTextView.java │ │ ├── LinkageWebView.java │ │ └── NestedFrameLayout.java │ ├── picker │ ├── RulerView.java │ ├── XRangeSlider.java │ ├── XSeekBar.java │ ├── wheelview │ │ ├── WheelView.java │ │ ├── adapter │ │ │ └── WheelAdapter.java │ │ ├── interfaces │ │ │ └── IPickerViewItem.java │ │ ├── listener │ │ │ ├── LoopViewGestureListener.java │ │ │ └── OnItemSelectedListener.java │ │ └── timer │ │ │ ├── InertiaTimerTask.java │ │ │ ├── MessageHandler.java │ │ │ └── SmoothScrollTimerTask.java │ └── widget │ │ ├── BasePickerView.java │ │ ├── OptionsPickerView.java │ │ ├── TimePickerView.java │ │ ├── WheelOptions.java │ │ ├── WheelTime.java │ │ ├── adapter │ │ ├── ArrayWheelAdapter.java │ │ └── NumericWheelAdapter.java │ │ ├── builder │ │ ├── OptionsPickerBuilder.java │ │ └── TimePickerBuilder.java │ │ ├── configure │ │ ├── PickerOptions.java │ │ └── TimePickerType.java │ │ ├── listener │ │ ├── CustomListener.java │ │ ├── ISelectTimeCallback.java │ │ ├── OnDismissListener.java │ │ ├── OnOptionsSelectChangeListener.java │ │ ├── OnOptionsSelectListener.java │ │ ├── OnTimeSelectChangeListener.java │ │ └── OnTimeSelectListener.java │ │ └── utils │ │ ├── ChinaDateUtils.java │ │ ├── LunarCalendarUtils.java │ │ └── PickerViewAnimateUtils.java │ ├── popupwindow │ ├── PopWindow.java │ ├── ViewTooltip.java │ ├── bar │ │ ├── Cookie.java │ │ └── CookieBar.java │ ├── easypopup │ │ ├── BaseCustomPopup.java │ │ ├── EasyPopup.java │ │ ├── HorizontalGravity.java │ │ ├── ListPopup.java │ │ └── VerticalGravity.java │ ├── good │ │ ├── GoodView.java │ │ └── IGoodView.java │ ├── popup │ │ ├── XUIBasePopup.java │ │ ├── XUIExpandableListPopup.java │ │ ├── XUIListPopup.java │ │ ├── XUIPopup.java │ │ ├── XUISimpleExpandablePopup.java │ │ └── XUISimplePopup.java │ └── status │ │ ├── SimpleAnimListener.java │ │ ├── Status.java │ │ └── StatusView.java │ ├── progress │ ├── CircleProgressView.java │ ├── HorizontalProgressView.java │ ├── loading │ │ ├── ARCLoadingView.java │ │ ├── IMessageLoader.java │ │ ├── LoadingCancelListener.java │ │ ├── LoadingViewLayout.java │ │ ├── MiniLoadingView.java │ │ └── RotateLoadingView.java │ ├── materialprogressbar │ │ ├── Animators.java │ │ ├── BaseDrawable.java │ │ ├── BaseIndeterminateProgressDrawable.java │ │ ├── BasePaintDrawable.java │ │ ├── BaseProgressDrawable.java │ │ ├── BaseProgressLayerDrawable.java │ │ ├── BaseSingleCircularProgressDrawable.java │ │ ├── BaseSingleHorizontalProgressDrawable.java │ │ ├── CircularProgressBackgroundDrawable.java │ │ ├── CircularProgressDrawable.java │ │ ├── HorizontalProgressBackgroundDrawable.java │ │ ├── HorizontalProgressDrawable.java │ │ ├── IndeterminateCircularProgressDrawable.java │ │ ├── IndeterminateHorizontalProgressDrawable.java │ │ ├── Interpolators.java │ │ ├── IntrinsicPaddingDrawable.java │ │ ├── MaterialProgressBar.java │ │ ├── MaterialProgressDrawable.java │ │ ├── ShowBackgroundDrawable.java │ │ ├── SingleCircularProgressDrawable.java │ │ ├── SingleHorizontalProgressDrawable.java │ │ ├── TintableDrawable.java │ │ └── internal │ │ │ ├── DrawableCompat.java │ │ │ ├── ObjectAnimatorCompat.java │ │ │ ├── ObjectAnimatorCompatBase.java │ │ │ └── ObjectAnimatorCompatLollipop.java │ └── ratingbar │ │ ├── AnimationRatingBar.java │ │ ├── IRatingBar.java │ │ ├── PartialView.java │ │ ├── RatingBar.java │ │ ├── RatingBarUtils.java │ │ ├── RotationRatingBar.java │ │ ├── SavedState.java │ │ └── ScaleRatingBar.java │ ├── searchview │ ├── AbstractSearchFilter.java │ ├── AnimationUtils.java │ ├── DefaultSearchFilter.java │ ├── MaterialSearchView.java │ └── SearchAdapter.java │ ├── shadow │ ├── ShadowButton.java │ ├── ShadowDrawable.java │ └── ShadowTextView.java │ ├── slideback │ ├── SlideBack.java │ ├── SlideBackManager.java │ ├── SlideInfo.java │ ├── callback │ │ ├── SlideBackCallBack.java │ │ └── SlideCallBack.java │ ├── dispatcher │ │ ├── ISlideTouchEventDispatcher.java │ │ ├── OnSlideUpdateListener.java │ │ └── impl │ │ │ └── DefaultSlideTouchDispatcher.java │ └── widget │ │ ├── SlideBackIconView.java │ │ └── SlideBackInterceptLayout.java │ ├── spinner │ ├── DropDownMenu.java │ ├── editspinner │ │ ├── BaseEditSpinnerAdapter.java │ │ ├── EditSpinner.java │ │ ├── EditSpinnerAdapter.java │ │ └── EditSpinnerFilter.java │ └── materialspinner │ │ ├── MaterialSpinner.java │ │ ├── MaterialSpinnerAdapter.java │ │ ├── MaterialSpinnerAdapterWrapper.java │ │ └── MaterialSpinnerBaseAdapter.java │ ├── statelayout │ ├── CustomStateOptions.java │ ├── MultipleStatusView.java │ ├── SimpleAnimationListener.java │ ├── StateLayoutConfig.java │ ├── StatefulLayout.java │ └── StatusLoader.java │ ├── tabbar │ ├── EasyIndicator.java │ ├── MultiTabControlView.java │ ├── TabControlView.java │ ├── TabSegment.java │ ├── VerticalTabLayout.java │ ├── XUIItemViewsAdapter.java │ └── vertical │ │ ├── ITabView.java │ │ ├── TabAdapter.java │ │ ├── TabBadgeView.java │ │ ├── TabFragmentManager.java │ │ ├── TabView.java │ │ └── XTabView.java │ ├── textview │ ├── AutoMoveTextView.java │ ├── BadgeView.java │ ├── ExpandableTextView.java │ ├── LoggerTextView.java │ ├── MarqueeTextView.java │ ├── autofit │ │ ├── AutoFitHelper.java │ │ ├── AutoFitLayout.java │ │ └── AutoFitTextView.java │ ├── badge │ │ ├── Badge.java │ │ ├── BadgeAnimator.java │ │ ├── BadgeView.java │ │ └── MathUtils.java │ ├── label │ │ ├── LabelButtonView.java │ │ ├── LabelImageView.java │ │ ├── LabelTextView.java │ │ ├── LabelView.java │ │ └── LabelViewHelper.java │ ├── marqueen │ │ ├── ComplexItemEntity.java │ │ ├── ComplexViewMF.java │ │ ├── DisplayEntity.java │ │ ├── MarqueeFactory.java │ │ ├── MarqueeView.java │ │ └── SimpleNoticeMF.java │ ├── span │ │ ├── AlignMiddleImageSpan.java │ │ └── MarginImageSpan.java │ └── supertextview │ │ ├── BaseTextView.java │ │ ├── CommonTextView.java │ │ ├── SuperButton.java │ │ └── SuperTextView.java │ └── toast │ ├── Utils.java │ └── XToast.java └── res ├── anim ├── cookiebar_interpolator_slight_anticipate.xml ├── cookiebar_interpolator_slight_overshoot.xml ├── cookiebar_slide_in_from_bottom.xml ├── cookiebar_slide_in_from_top.xml ├── cookiebar_slide_out_to_bottom.xml ├── cookiebar_slide_out_to_top.xml ├── ddm_mask_in.xml ├── ddm_mask_out.xml ├── ddm_menu_in.xml ├── ddm_menu_out.xml ├── gcv_fade_in.xml ├── gcv_fade_out.xml ├── marquee_bottom_in.xml ├── marquee_bottom_out.xml ├── marquee_left_in.xml ├── marquee_left_out.xml ├── marquee_right_in.xml ├── marquee_right_out.xml ├── marquee_top_in.xml ├── marquee_top_out.xml ├── md_decelerate_cubic.xml ├── md_popup_enter.xml ├── md_popup_exit.xml ├── picker_view_dialog_scale_in.xml ├── picker_view_dialog_scale_out.xml ├── picker_view_slide_in_bottom.xml ├── picker_view_slide_out_bottom.xml ├── pop_grow_from_bottom.xml ├── pop_grow_from_bottomleft_to_topright.xml ├── pop_grow_from_bottomright_to_topleft.xml ├── pop_grow_from_top.xml ├── pop_grow_from_topleft_to_bottomright.xml ├── pop_grow_from_topright_to_bottomleft.xml ├── pop_shrink_from_bottom.xml ├── pop_shrink_from_bottomleft_to_topright.xml ├── pop_shrink_from_bottomright_to_topleft.xml ├── pop_shrink_from_top.xml ├── pop_shrink_from_topleft_to_bottomright.xml ├── pop_shrink_from_topright_to_bottomleft.xml ├── srb_rotation.xml ├── srb_scale_down.xml ├── srb_scale_up.xml ├── sv_slide_in.xml └── sv_slide_out.xml ├── color ├── ms_dropdown_item_textcolor.xml ├── swb_md_back_color.xml ├── xui_config_color_edittext_textcolor.xml ├── xui_default_flow_tag_selector_text_color.xml ├── xui_default_round_btn_blue_bg.xml ├── xui_default_round_btn_blue_border.xml ├── xui_default_round_btn_blue_text.xml ├── xui_default_round_btn_gray_bg.xml ├── xui_default_round_btn_green_bg.xml ├── xui_default_round_btn_white_text.xml ├── xui_selector_content_text_color.xml └── xui_transparent.xml ├── drawable-hdpi ├── srb_ic_empty.png ├── srb_ic_filled.png ├── xtoast_frame.9.png ├── xui_bg_center_popwindow.9.png ├── xui_ic_arrow_down_black.png ├── xui_ic_default_img.png ├── xui_ic_expand_less_black_12dp.png ├── xui_ic_expand_more_black_12dp.png ├── xui_ic_no_img.png ├── xui_icon_check_mark.png ├── xui_icon_tip_new.png ├── xui_icon_video.png └── xui_popup_arrow_down.png ├── drawable-nodpi └── xui_divider.png ├── drawable-v17 ├── md_btn_selected.xml ├── md_btn_selected_dark.xml ├── mlet_selector_bg.xml ├── ms_drop_down_bg.xml ├── ms_drop_down_bg_radius.xml ├── ms_ic_arrow_down.png ├── xui_config_bg_button_corner_white.xml ├── xui_config_bg_dialog_radius_black.xml ├── xui_config_bg_dialog_radius_white.xml ├── xui_config_bg_spinner_normal.xml ├── xui_config_bg_spinner_touch.xml ├── xui_config_border_separator_light.xml ├── xui_config_color_blue_btn_disable.xml ├── xui_config_color_blue_btn_normal.xml ├── xui_config_color_blue_btn_touch.xml ├── xui_config_color_edittext_disable.xml ├── xui_config_color_edittext_error.xml ├── xui_config_color_edittext_normal.xml ├── xui_config_color_edittext_touch.xml ├── xui_config_color_primary_btn_normal.xml ├── xui_config_color_primary_btn_touch.xml ├── xui_config_list_divider.xml ├── xui_config_list_item_selector.xml ├── xui_config_list_item_transparent_selector.xml ├── xui_config_popup_divider.xml ├── xui_config_selectable_item_selector.xml ├── xui_default_flow_tag_bg_rect_round.xml ├── xui_divider_top_bitmap.xml ├── xui_ic_default_clear_btn.png ├── xui_ic_navigation_back_white.png ├── xui_icon_checkbox_checked.png ├── xui_icon_checkbox_normal.png ├── xui_list_item_bg_with_border_bottom.xml ├── xui_list_item_bg_with_border_bottom_pressed.xml ├── xui_list_item_bg_with_border_double.xml ├── xui_list_item_bg_with_border_double_pressed.xml ├── xui_list_item_bg_with_border_none_selector.xml ├── xui_list_item_bg_with_border_top.xml └── xui_list_item_bg_with_border_top_pressed.xml ├── drawable-v21 ├── ms_ic_arrow_down.xml ├── pet_icon_visibility_24dp.xml ├── pet_icon_visibility_off_24dp.xml ├── xui_config_bg_splash.xml ├── xui_config_color_blue_btn_disable.xml ├── xui_config_color_blue_btn_normal.xml ├── xui_config_color_blue_btn_touch.xml ├── xui_config_color_edittext_disable.xml ├── xui_config_color_edittext_error.xml ├── xui_config_color_edittext_normal.xml ├── xui_config_color_edittext_touch.xml ├── xui_config_color_primary_btn_normal.xml ├── xui_config_color_primary_btn_touch.xml ├── xui_default_flow_tag_bg_rect_round.xml ├── xui_ic_default_clear_btn.xml ├── xui_ic_default_tip_btn.xml ├── xui_ic_navigation_back_white.xml ├── xui_icon_checkbox.xml ├── xui_icon_checkbox_checked.xml └── xui_icon_checkbox_normal.xml ├── drawable-xxhdpi ├── xui_bg_bubble_blue.png └── xui_ic_slider_icon.png ├── drawable-xxxhdpi └── xui_popup_bg.9.png ├── drawable ├── ddm_ic_arrow_down.xml ├── ddm_ic_arrow_up.xml ├── md_btn_selected.xml ├── md_btn_selected_dark.xml ├── md_btn_selector.xml ├── md_btn_selector_dark.xml ├── md_item_selected.xml ├── md_item_selected_dark.xml ├── md_selector.xml ├── md_selector_dark.xml ├── md_transparent.xml ├── mlet_selector_bg.xml ├── ms_background_selector.xml ├── ms_drop_down_bg.xml ├── ms_drop_down_bg_radius.xml ├── ms_ic_arrow_down.xml ├── ms_ic_arrow_up.xml ├── pe_ic_remove.xml ├── pe_rounded_border_tv.xml ├── pet_icon_visibility_24dp.xml ├── pet_icon_visibility_off_24dp.xml ├── rb_bg_disabled.xml ├── rb_bg_normal.xml ├── rb_bg_pressed.xml ├── rb_bg_selector.xml ├── stf_ic_empty.xml ├── stf_ic_error.xml ├── stf_ic_location_off.xml ├── stf_ic_offline.xml ├── stv_btn_selector_white.xml ├── swb_md_thumb.xml ├── tcv_left_option.xml ├── tcv_left_option_selected.xml ├── tcv_middle_option.xml ├── tcv_middle_option_selected.xml ├── tcv_right_option.xml ├── tcv_right_option_selected.xml ├── vcet_shape_bg_focus.xml ├── vcet_shape_bg_normal.xml ├── vcet_shape_divider.xml ├── xtoast_ic_check_white_24dp.xml ├── xtoast_ic_clear_white_24dp.xml ├── xtoast_ic_error_outline_white_24dp.xml ├── xtoast_ic_info_outline_white_24dp.xml ├── xui_config_bg_blue_btn.xml ├── xui_config_bg_button_corner_black.xml ├── xui_config_bg_button_corner_white.xml ├── xui_config_bg_dialog_radius_black.xml ├── xui_config_bg_dialog_radius_white.xml ├── xui_config_bg_edittext.xml ├── xui_config_bg_primary_btn.xml ├── xui_config_bg_spinner.xml ├── xui_config_bg_spinner_normal.xml ├── xui_config_bg_spinner_touch.xml ├── xui_config_bg_splash.xml ├── xui_config_border_separator_light.xml ├── xui_config_color_blue_btn_disable.xml ├── xui_config_color_blue_btn_normal.xml ├── xui_config_color_blue_btn_touch.xml ├── xui_config_color_edittext_disable.xml ├── xui_config_color_edittext_error.xml ├── xui_config_color_edittext_normal.xml ├── xui_config_color_edittext_touch.xml ├── xui_config_color_primary_btn_normal.xml ├── xui_config_color_primary_btn_touch.xml ├── xui_config_list_divider.xml ├── xui_config_list_item_selector.xml ├── xui_config_list_item_transparent_selector.xml ├── xui_config_popup_divider.xml ├── xui_config_preview_window.xml ├── xui_config_selectable_item_selector.xml ├── xui_default_flow_tag_bg_rect_round.xml ├── xui_divider_top_bitmap.xml ├── xui_ic_action_navigation_arrow_back.xml ├── xui_ic_action_navigation_clear.xml ├── xui_ic_action_voice_search.xml ├── xui_ic_default_clear_btn.xml ├── xui_ic_default_tip_btn.xml ├── xui_ic_expand_arrow_down.xml ├── xui_ic_expand_arrow_up.xml ├── xui_ic_navigation_back_white.xml ├── xui_ic_suggestion.xml ├── xui_icon_checkbox.xml ├── xui_icon_checkbox_checked.xml ├── xui_icon_checkbox_normal.xml ├── xui_icon_chevron.xml ├── xui_icon_switch_off.xml ├── xui_icon_switch_on.xml ├── xui_icon_switch_selector.xml ├── xui_list_item_bg_with_border_bottom.xml ├── xui_list_item_bg_with_border_bottom_pressed.xml ├── xui_list_item_bg_with_border_bottom_selector.xml ├── xui_list_item_bg_with_border_double.xml ├── xui_list_item_bg_with_border_double_pressed.xml ├── xui_list_item_bg_with_border_double_selector.xml ├── xui_list_item_bg_with_border_none_selector.xml ├── xui_list_item_bg_with_border_top.xml ├── xui_list_item_bg_with_border_top_pressed.xml ├── xui_list_item_bg_with_border_top_selector.xml ├── xui_popup_arrow_up.xml ├── xui_shape_transparent.xml ├── xui_sign_count_view_bg.xml └── xui_tips_point.xml ├── layout-large └── xui_layout_xtoast.xml ├── layout-xlarge └── xui_layout_xtoast.xml ├── layout ├── gcv_layout_image.xml ├── gcv_layout_title.xml ├── marqueen_layout_complex_view.xml ├── marqueen_layout_notice_item.xml ├── ms_layout_list_item.xml ├── msv_layout_empty_view.xml ├── msv_layout_error_view.xml ├── msv_layout_loading_view.xml ├── msv_layout_no_network_view.xml ├── preview_activity_image_photo.xml ├── preview_activity_video_player.xml ├── preview_fragment_image_photo.xml ├── xmd_layout_dialog_basic.xml ├── xmd_layout_dialog_basic_check.xml ├── xmd_layout_dialog_custom.xml ├── xmd_layout_dialog_input.xml ├── xmd_layout_dialog_input_check.xml ├── xmd_layout_dialog_list.xml ├── xmd_layout_dialog_list_check.xml ├── xmd_layout_dialog_progress.xml ├── xmd_layout_dialog_progress_indeterminate.xml ├── xmd_layout_dialog_progress_indeterminate_horizontal.xml ├── xmd_layout_listitem.xml ├── xmd_layout_listitem_multi_choice.xml ├── xmd_layout_listitem_single_choice.xml ├── xmd_layout_preference_custom.xml ├── xmd_layout_simplelist_item.xml ├── xmd_layout_stub_action_buttons.xml ├── xmd_layout_stub_inputpref.xml ├── xmd_layout_stub_progress.xml ├── xmd_layout_stub_progress_indeterminate.xml ├── xmd_layout_stub_progress_indeterminate_horizontal.xml ├── xmd_layout_stub_title_frame.xml ├── xmd_layout_stub_title_frame_less_padding.xml ├── xui_activity_guide.xml ├── xui_adapter_default_flow_tag_item.xml ├── xui_adapter_listview_simple_item.xml ├── xui_adapter_simple_guide.xml ├── xui_adapter_simple_image.xml ├── xui_adapter_simple_text.xml ├── xui_bottom_sheet_grid.xml ├── xui_bottom_sheet_grid_item.xml ├── xui_bottom_sheet_grid_item_subscript.xml ├── xui_bottom_sheet_list.xml ├── xui_bottom_sheet_list_item.xml ├── xui_bottom_sheet_list_item_mark.xml ├── xui_dialog_loading.xml ├── xui_dialog_loading_mini.xml ├── xui_include_picker_view_bottom.xml ├── xui_include_picker_view_topbar.xml ├── xui_include_titlebar.xml ├── xui_layout_common_list_item.xml ├── xui_layout_common_list_item_tip_new.xml ├── xui_layout_cookie.xml ├── xui_layout_crop_image_view.xml ├── xui_layout_edit_spinner.xml ├── xui_layout_expand_child_item.xml ├── xui_layout_expand_group_item.xml ├── xui_layout_group_list_section.xml ├── xui_layout_loading_view.xml ├── xui_layout_multiline_edittext.xml ├── xui_layout_photo_editor_image.xml ├── xui_layout_photo_editor_text.xml ├── xui_layout_picker_view_base.xml ├── xui_layout_picker_view_options.xml ├── xui_layout_picker_view_options_dialog.xml ├── xui_layout_picker_view_time.xml ├── xui_layout_picker_view_time_dialog.xml ├── xui_layout_popup.xml ├── xui_layout_search_view.xml ├── xui_layout_search_view_suggest_item.xml ├── xui_layout_spinner_drop_down_item.xml ├── xui_layout_spinner_selected_item.xml ├── xui_layout_stateful_template.xml ├── xui_layout_verify_code.xml └── xui_layout_xtoast.xml └── values ├── md_attrs.xml ├── stv_attrs.xml ├── xui_arrays.xml ├── xui_attrs.xml ├── xui_attrs_base.xml ├── xui_colors.xml ├── xui_dimens.xml ├── xui_ids.xml ├── xui_public.xml ├── xui_strings.xml ├── xui_styles_common.xml ├── xui_styles_widget.xml └── xui_themes.xml /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | local.properties 16 | /app/release 17 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | Factory Test -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/dictionaries/28821.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | backlight 5 | gpio 6 | iperf 7 | uart 8 | wiegand 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 23 | 24 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /app/build.properties: -------------------------------------------------------------------------------- 1 | #Build Properties 2 | #Thu Jul 07 08:36:49 CST 2022 3 | version_minor=0 4 | version_build=0 5 | version_patch=22 6 | version_store=23 7 | version_major=1 8 | -------------------------------------------------------------------------------- /app/libs/NativeAudioRecord-release-1.0.0.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/libs/NativeAudioRecord-release-1.0.0.aar -------------------------------------------------------------------------------- /app/libs/nd01sdk-release-v1.0.2.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/libs/nd01sdk-release-v1.0.2.aar -------------------------------------------------------------------------------- /app/libs/tbapi-release_1.0.13.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/libs/tbapi-release_1.0.13.aar -------------------------------------------------------------------------------- /app/src/androidTest/java/com/ayst/factorytest/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.ayst.factorytest; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | assertEquals("com.ayst.factorytest", appContext.getPackageName()); 25 | } 26 | } -------------------------------------------------------------------------------- /app/src/main/assets/bin/iperf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/assets/bin/iperf -------------------------------------------------------------------------------- /app/src/main/assets/bin/iperf3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/assets/bin/iperf3 -------------------------------------------------------------------------------- /app/src/main/java/com/ayst/factorytest/App.java: -------------------------------------------------------------------------------- 1 | package com.ayst.factorytest; 2 | 3 | import android.app.Application; 4 | 5 | import com.blankj.utilcode.util.Utils; 6 | import com.topband.tbapi.TBManager; 7 | import com.xuexiang.xui.XUI; 8 | 9 | public class App extends Application { 10 | private static final String TAG = "App"; 11 | 12 | private static TBManager sTBManager; 13 | 14 | @Override 15 | public void onCreate() { 16 | super.onCreate(); 17 | 18 | Utils.init(this); 19 | XUI.init(this); 20 | 21 | sTBManager = new TBManager(this); 22 | sTBManager.init(); 23 | } 24 | 25 | @Override 26 | public void onTerminate() { 27 | sTBManager.deinit(); 28 | super.onTerminate(); 29 | } 30 | 31 | public static TBManager getTBManager() { 32 | return sTBManager; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/ayst/factorytest/adapter/NarItemAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ayst.factorytest.adapter; 2 | 3 | import android.os.Build; 4 | 5 | import androidx.annotation.NonNull; 6 | import androidx.annotation.RequiresApi; 7 | 8 | import com.ayst.factorytest.R; 9 | import com.chad.library.adapter.base.BaseQuickAdapter; 10 | import com.chad.library.adapter.base.viewholder.BaseViewHolder; 11 | 12 | public class NarItemAdapter extends BaseQuickAdapter { 13 | public NarItemAdapter() { 14 | super(R.layout.layout_rv_item); 15 | } 16 | 17 | @RequiresApi(api = Build.VERSION_CODES.M) 18 | @Override 19 | protected void convert(@NonNull BaseViewHolder baseViewHolder, Double value) { 20 | baseViewHolder.setText(R.id.tv_name, String.format("%.2f", value)); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/ayst/factorytest/adapter/StringItemAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ayst.factorytest.adapter; 2 | 3 | import android.os.Build; 4 | 5 | import androidx.annotation.NonNull; 6 | import androidx.annotation.RequiresApi; 7 | 8 | import com.ayst.factorytest.R; 9 | import com.chad.library.adapter.base.BaseQuickAdapter; 10 | import com.chad.library.adapter.base.viewholder.BaseViewHolder; 11 | 12 | public class StringItemAdapter extends BaseQuickAdapter { 13 | public StringItemAdapter() { 14 | super(R.layout.layout_rv_item); 15 | } 16 | 17 | @RequiresApi(api = Build.VERSION_CODES.M) 18 | @Override 19 | protected void convert(@NonNull BaseViewHolder baseViewHolder, String value) { 20 | baseViewHolder.setText(R.id.tv_name, value); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/ayst/factorytest/base/BaseActivity.java: -------------------------------------------------------------------------------- 1 | package com.ayst.factorytest.base; 2 | 3 | import android.os.Bundle; 4 | 5 | import androidx.annotation.Nullable; 6 | import androidx.appcompat.app.AppCompatActivity; 7 | 8 | import com.xuexiang.xui.XUI; 9 | import com.xuexiang.xui.utils.WidgetUtils; 10 | 11 | public class BaseActivity extends AppCompatActivity { 12 | 13 | @Override 14 | protected void onCreate(@Nullable Bundle savedInstanceState) { 15 | XUI.initTheme(this); 16 | WidgetUtils.requestFullScreen(this); 17 | super.onCreate(savedInstanceState); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/ayst/factorytest/model/ResultEvent.java: -------------------------------------------------------------------------------- 1 | package com.ayst.factorytest.model; 2 | 3 | public class ResultEvent { 4 | private TestItem mItem; 5 | 6 | public ResultEvent(TestItem item) { 7 | this.mItem = item; 8 | } 9 | 10 | public TestItem getTestItem() { 11 | return mItem; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/ayst/factorytest/model/WiFiParam.java: -------------------------------------------------------------------------------- 1 | package com.ayst.factorytest.model; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | import java.io.Serializable; 6 | 7 | public class WiFiParam implements Serializable { 8 | 9 | @SerializedName("ssid") 10 | private String ssid; 11 | 12 | @SerializedName("rssi") 13 | private Integer rssi; 14 | 15 | public String getSsid() { 16 | return ssid; 17 | } 18 | 19 | public void setSsid(String ssid) { 20 | this.ssid = ssid; 21 | } 22 | 23 | public Integer getRssi() { 24 | return rssi; 25 | } 26 | 27 | public void setRssi(Integer rssi) { 28 | this.rssi = rssi; 29 | } 30 | 31 | @Override 32 | public String toString() { 33 | return "WiFiParam{" + 34 | "ssid='" + ssid + '\'' + 35 | ", rssi=" + rssi + 36 | '}'; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_recyclerview.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_state_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_state_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_state_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_fail_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_fail_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_fail_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_start_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_start_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_start_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_success_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_success_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_success_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_text_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_touch_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_touch_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_touch_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/edt_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_bluetooth_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 16 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_camera_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_human_sensor.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_key_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_regular_boot_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_speaker_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_touch_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 19 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_watchdog_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_wifi_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 16 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_rv_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_test_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_close.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_device.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wait_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wait_0.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wait_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wait_1.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wait_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wait_2.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wait_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wait_3.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wait_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wait_4.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wait_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wait_5.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wait_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wait_6.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wait_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wait_7.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wait_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wait_8.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wifi_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wifi_0.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wifi_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wifi_1.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wifi_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wifi_2.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wifi_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wifi_3.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wifi_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wifi_connected.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_wifi_pwd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-hdpi/ic_wifi_pwd.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/raw/play.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/src/main/res/raw/play.mp3 -------------------------------------------------------------------------------- /app/src/main/res/values-sw480dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18sp 4 | 14sp 5 | 12sp 6 | 8sp 7 | 8 | 40dp 9 | 10dp 10 | 40dp 11 | 40dp 12 | 80dp 13 | 60dp 14 | 40dp 15 | 16 | 17 | 400dp 18 | 12dp 19 | 8dp 20 | 12dp 21 | 8dp 22 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18sp 5 | 14sp 6 | 12sp 7 | 8sp 8 | 9 | 10 | 30dp 11 | 20dp 12 | 45dp 13 | 50dp 14 | 100dp 15 | 80dp 16 | 30dp 17 | 18 | 19 | 400dp 20 | 12dp 21 | 8dp 22 | 12dp 23 | 8dp 24 | -------------------------------------------------------------------------------- /app/src/main/res/values-xhdpi/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14sp 5 | 12sp 6 | 10sp 7 | 8sp 8 | 9 | 10 | 10dp 11 | 10dp 12 | 35dp 13 | 35dp 14 | 70dp 15 | 60dp 16 | 40dp 17 | 18 | 19 | 350dp 20 | 8dp 21 | 5dp 22 | 8dp 23 | 5dp 24 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18sp 5 | 14sp 6 | 12sp 7 | 8sp 8 | 9 | 10 | 50dp 11 | 40dp 12 | 50dp 13 | 60dp 14 | 140dp 15 | 100dp 16 | 40dp 17 | 18 | 19 | 500dp 20 | 15dp 21 | 10dp 22 | 15dp 23 | 10dp 24 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /app/src/test/java/com/ayst/factorytest/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.ayst.factorytest; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/system.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/app/system.keystore -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Jan 10 14:26:30 CST 2022 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip 7 | -------------------------------------------------------------------------------- /screenshots/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/screenshots/home.png -------------------------------------------------------------------------------- /screenshots/microphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/screenshots/microphone.png -------------------------------------------------------------------------------- /screenshots/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/screenshots/result.png -------------------------------------------------------------------------------- /screenshots/touch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/screenshots/touch.png -------------------------------------------------------------------------------- /serialport/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | .externalNativeBuild 3 | -------------------------------------------------------------------------------- /serialport/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | 4 | android { 5 | compileSdkVersion rootProject.ext.compileSdkVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | 11 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 12 | } 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 17 | } 18 | } 19 | externalNativeBuild { 20 | cmake { 21 | path 'CMakeLists.txt' 22 | } 23 | } 24 | } 25 | 26 | dependencies { 27 | } 28 | 29 | -------------------------------------------------------------------------------- /serialport/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\DevTools\Android\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /serialport/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /serialport/src/main/cpp/gen_SerialPort_h.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | javah -o SerialPort.h -jni -classpath ../java android.serialport.SerialPort 3 | 4 | -------------------------------------------------------------------------------- /serialport/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | SerialPortSource 3 | 4 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':xui', ':serialport' 2 | rootProject.name = "Factory Test" -------------------------------------------------------------------------------- /xui/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /xui/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | //apply plugin: 'img-optimizer' 3 | 4 | android { 5 | compileSdkVersion rootProject.ext.compileSdkVersion 6 | buildToolsVersion rootProject.ext.buildToolsVersion 7 | 8 | defaultConfig { 9 | minSdkVersion rootProject.ext.minSdkVersion 10 | targetSdkVersion rootProject.ext.targetSdkVersion 11 | 12 | vectorDrawables.useSupportLibrary = true 13 | } 14 | 15 | lintOptions { 16 | abortOnError false 17 | } 18 | } 19 | 20 | dependencies { 21 | implementation 'androidx.appcompat:appcompat:1.4.1' 22 | implementation 'androidx.recyclerview:recyclerview:1.2.1' 23 | implementation 'com.android.support:design:28.0.0' 24 | implementation 'com.google.android.material:material:1.5.0' 25 | implementation 'com.github.bumptech.glide:glide:4.12.0' 26 | 27 | api 'io.github.inflationx:calligraphy3:3.1.1' 28 | api 'io.github.inflationx:viewpump:2.0.3' 29 | } 30 | 31 | //apply from: '../JitPackUpload.gradle' 32 | -------------------------------------------------------------------------------- /xui/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /xui/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 10 | 11 | 14 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/UIConsts.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui; 2 | 3 | /** 4 | * 常量 5 | * 6 | * @author xuexiang 7 | * @since 2018/11/22 下午5:24 8 | */ 9 | public final class UIConsts { 10 | 11 | /** 12 | * 屏幕类型 13 | */ 14 | public final static class ScreenType { 15 | /** 16 | * 手机 17 | */ 18 | public final static int PHONE = 1; 19 | /** 20 | * 小平板(7寸左右) 21 | */ 22 | public final static int SMALL_TABLET = 2; 23 | /** 24 | * 大平板(10寸左右) 25 | */ 26 | public final static int BIG_TABLET = 3; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/adapter/simple/ViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.adapter.simple; 2 | 3 | import android.widget.ImageView; 4 | import android.widget.LinearLayout; 5 | import android.widget.TextView; 6 | 7 | /** 8 | * 简单的ViewHolder 9 | * 10 | * @author xuexiang 11 | * @since 2019/1/14 下午10:16 12 | */ 13 | public class ViewHolder { 14 | /** 15 | * 父布局 16 | */ 17 | public LinearLayout mLLContentView; 18 | /** 19 | * 标题 20 | */ 21 | public TextView mTvTitle; 22 | /** 23 | * 图标 24 | */ 25 | public ImageView mIvIcon; 26 | } 27 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/logs/ILogger.java: -------------------------------------------------------------------------------- 1 | 2 | package com.xuexiang.xui.logs; 3 | 4 | /** 5 | * 简易的日志记录接口 6 | * 7 | * @author xuexiang 8 | * @since 2019/1/14 下午10:15 9 | */ 10 | public interface ILogger { 11 | 12 | /** 13 | * 打印信息 14 | * 15 | * @param priority 优先级 16 | * @param tag 标签 17 | * @param message 信息 18 | * @param t 出错信息 19 | */ 20 | void log(int priority, String tag, String message, Throwable t); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/banner/anim/select/RotateEnter.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.banner.anim.select; 2 | 3 | import android.animation.ObjectAnimator; 4 | import android.view.View; 5 | 6 | import com.xuexiang.xui.widget.banner.anim.BaseAnimator; 7 | 8 | /** 9 | * 10 | * 11 | * @author xuexiang 12 | * @since 2018/11/25 下午6:51 13 | */ 14 | public class RotateEnter extends BaseAnimator { 15 | public RotateEnter() { 16 | this.mDuration = 200; 17 | } 18 | 19 | @Override 20 | public void setAnimation(View view) { 21 | this.mAnimatorSet.playTogether(ObjectAnimator.ofFloat(view, "rotation", 0, 180)); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/banner/anim/select/ZoomInEnter.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.banner.anim.select; 2 | 3 | import android.animation.ObjectAnimator; 4 | import android.view.View; 5 | import com.xuexiang.xui.widget.banner.anim.BaseAnimator; 6 | 7 | public class ZoomInEnter extends BaseAnimator { 8 | 9 | public ZoomInEnter() { 10 | this.mDuration = 200; 11 | } 12 | 13 | @Override 14 | public void setAnimation(View view) { 15 | this.mAnimatorSet.playTogether(ObjectAnimator.ofFloat(view, "scaleX", 1.0F, 1.5F), 16 | ObjectAnimator.ofFloat(view, "scaleY", 1.0F, 1.5F)); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/banner/anim/unselect/NoAnimExist.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.banner.anim.unselect; 2 | 3 | import android.animation.ObjectAnimator; 4 | import android.view.View; 5 | import com.xuexiang.xui.widget.banner.anim.BaseAnimator; 6 | 7 | public class NoAnimExist extends BaseAnimator { 8 | 9 | public NoAnimExist() { 10 | this.mDuration = 200; 11 | } 12 | 13 | @Override 14 | public void setAnimation(View view) { 15 | this.mAnimatorSet.playTogether(ObjectAnimator.ofFloat(view, "alpha", 1, 1)); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/banner/transform/FadeSlideTransformer.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.banner.transform; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.viewpager.widget.ViewPager; 5 | import android.view.View; 6 | 7 | /** 8 | * 侧滑逐渐消失切换 9 | * 10 | * @author xuexiang 11 | * @since 2019/1/14 下午10:10 12 | */ 13 | public class FadeSlideTransformer implements ViewPager.PageTransformer { 14 | @Override 15 | public void transformPage(@NonNull View page, float position) { 16 | 17 | page.setTranslationX(0); 18 | 19 | if (position <= -1.0F || position >= 1.0F) { 20 | page.setAlpha(0.0F); 21 | } else if (position == 0.0F) { 22 | page.setAlpha(1.0F); 23 | } else { 24 | // position is between -1.0F & 0.0F OR 0.0F & 1.0F 25 | page.setAlpha(1.0F - Math.abs(position)); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/banner/transform/FlowTransformer.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.banner.transform; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.viewpager.widget.ViewPager; 5 | import android.view.View; 6 | 7 | /** 8 | * 翻转切换 9 | * 10 | * @author xuexiang 11 | * @since 2019/1/14 下午10:12 12 | */ 13 | public class FlowTransformer implements ViewPager.PageTransformer { 14 | 15 | @Override 16 | public void transformPage(@NonNull View page, float position) { 17 | page.setRotationY(position * -30f); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/banner/transform/RotateDownTransformer.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.banner.transform; 2 | 3 | import android.view.View; 4 | 5 | import androidx.viewpager.widget.ViewPager; 6 | 7 | /** 8 | * 向下旋转切换 9 | * 10 | * @author xuexiang 11 | * @since 2019/1/14 下午10:09 12 | */ 13 | public class RotateDownTransformer implements ViewPager.PageTransformer { 14 | 15 | private static final float ROT_MOD = -15f; 16 | 17 | @Override 18 | public void transformPage(View page, float position) { 19 | final float width = page.getWidth(); 20 | final float height = page.getHeight(); 21 | final float rotation = ROT_MOD * position * -1.25f; 22 | 23 | page.setPivotX(width * 0.5f); 24 | page.setPivotY(height); 25 | page.setRotation(rotation); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/banner/transform/RotateUpTransformer.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.banner.transform; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.viewpager.widget.ViewPager; 5 | import android.view.View; 6 | /** 7 | * 向上旋转切换 8 | * 9 | * @author xuexiang 10 | * @since 2019/1/14 下午10:15 11 | */ 12 | public class RotateUpTransformer implements ViewPager.PageTransformer { 13 | 14 | private static final float ROT_MOD = -15f; 15 | 16 | @Override 17 | public void transformPage(@NonNull View page, float position) { 18 | final float width = page.getWidth(); 19 | final float rotation = ROT_MOD * position; 20 | 21 | page.setPivotX(width * 0.5f); 22 | page.setPivotY(0f); 23 | page.setTranslationX(0f); 24 | page.setRotation(rotation); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/banner/widget/banner/BannerItem.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.banner.widget.banner; 2 | 3 | /** 4 | * 图片轮播条目 5 | * 6 | * @author xuexiang 7 | * @since 2018/11/25 下午7:01 8 | */ 9 | public class BannerItem { 10 | public String imgUrl; 11 | public String title; 12 | 13 | public String getImgUrl() { 14 | return imgUrl; 15 | } 16 | 17 | public BannerItem setImgUrl(String imgUrl) { 18 | this.imgUrl = imgUrl; 19 | return this; 20 | } 21 | 22 | public String getTitle() { 23 | return title; 24 | } 25 | 26 | public BannerItem setTitle(String title) { 27 | this.title = title; 28 | return this; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/banner/widget/loopviewpager/FixedSpeedScroller.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.banner.widget.loopviewpager; 2 | 3 | import android.content.Context; 4 | import android.view.animation.Interpolator; 5 | import android.widget.Scroller; 6 | 7 | public class FixedSpeedScroller extends Scroller { 8 | private int mScrollSpeed = 450; 9 | 10 | public FixedSpeedScroller(Context context) { 11 | super(context); 12 | } 13 | 14 | public FixedSpeedScroller(Context context, Interpolator interpolator, int scrollSpeed) { 15 | super(context, interpolator); 16 | this.mScrollSpeed = scrollSpeed; 17 | } 18 | 19 | @Override 20 | public void startScroll(int startX, int startY, int dx, int dy, int duration) { 21 | super.startScroll(startX, startY, dx, dy, this.mScrollSpeed); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/dialog/materialdialog/Theme.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 xuexiangjys(xuexiangjys@163.com) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.xuexiang.xui.widget.dialog.materialdialog; 19 | 20 | /** 21 | * @author Aidan Follestad (afollestad) 22 | */ 23 | public enum Theme { 24 | /** 25 | * 亮色调 26 | */ 27 | LIGHT, 28 | /** 29 | * 暗色调 30 | */ 31 | DARK 32 | } 33 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/dialog/materialdialog/internal/MDAdapter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 xuexiangjys(xuexiangjys@163.com) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.xuexiang.xui.widget.dialog.materialdialog.internal; 19 | 20 | 21 | import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog; 22 | 23 | /** 24 | * @author Aidan Follestad (afollestad) 25 | */ 26 | public interface MDAdapter { 27 | 28 | void setDialog(MaterialDialog dialog); 29 | } 30 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/edittext/materialedittext/validation/METLengthChecker.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.edittext.materialedittext.validation; 2 | 3 | /** 4 | * 长度验证 5 | * 6 | * @author xuexiang 7 | * @since 2018/11/26 下午5:06 8 | */ 9 | public abstract class METLengthChecker { 10 | 11 | public abstract int getLength(CharSequence text); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/edittext/materialedittext/validation/RegexpValidator.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.edittext.materialedittext.validation; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | import java.util.regex.Pattern; 6 | 7 | /** 8 | * 正则表达式验证 9 | * 10 | * @author xuexiang 11 | * @since 2018/11/26 下午5:06 12 | */ 13 | public class RegexpValidator extends METValidator { 14 | 15 | private Pattern pattern; 16 | 17 | public RegexpValidator(@NonNull String errorMessage, @NonNull String regex) { 18 | super(errorMessage); 19 | pattern = Pattern.compile(regex); 20 | } 21 | 22 | public RegexpValidator(@NonNull String errorMessage, @NonNull Pattern pattern) { 23 | super(errorMessage); 24 | this.pattern = pattern; 25 | } 26 | 27 | @Override 28 | public boolean isValid(@NonNull CharSequence text, boolean isEmpty) { 29 | return pattern.matcher(text).matches(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/flowlayout/DefaultFlowTagAdapter.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.flowlayout; 2 | 3 | import android.content.Context; 4 | import android.view.View; 5 | import android.widget.TextView; 6 | 7 | import com.xuexiang.xui.R; 8 | 9 | /** 10 | * 默认流标签布局适配器 11 | * 12 | * @author xuexiang 13 | * @since 2019/1/14 下午10:00 14 | */ 15 | public class DefaultFlowTagAdapter extends BaseTagAdapter { 16 | 17 | public DefaultFlowTagAdapter(Context context) { 18 | super(context); 19 | } 20 | 21 | @Override 22 | protected TextView newViewHolder(View convertView) { 23 | return (TextView) convertView.findViewById(R.id.tv_tag_item); 24 | } 25 | 26 | @Override 27 | protected int getLayoutId() { 28 | return R.layout.xui_adapter_default_flow_tag_item; 29 | } 30 | 31 | @Override 32 | protected void convert(TextView textView, String item, int position) { 33 | textView.setText(item); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/guidview/DismissListener.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.guidview; 2 | 3 | /** 4 | * Listener for dismissing of one GuideCaseView 5 | */ 6 | public interface DismissListener { 7 | /** 8 | * is called when a {@link GuideCaseView} is dismissed 9 | * 10 | * @param id the show once id of the dismissed view 11 | */ 12 | void onDismiss(String id); 13 | /** 14 | * is called when a {@link GuideCaseView} is skipped because of it's show once id 15 | * 16 | * @param id the show once id of the dismissed view 17 | */ 18 | void onSkipped(String id); 19 | } 20 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/guidview/FocusShape.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.guidview; 2 | 3 | /** 4 | * 聚焦的形状 5 | * 6 | * @author xuexiang 7 | * @since 2018/11/29 上午12:47 8 | */ 9 | public enum FocusShape { 10 | /** 11 | * 圆形 12 | */ 13 | CIRCLE, 14 | /** 15 | * 圆角矩形 16 | */ 17 | ROUNDED_RECTANGLE 18 | } 19 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/guidview/OnCompleteListener.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.guidview; 2 | 3 | /** 4 | * 引导完成的监听 5 | * 6 | * @author xuexiang 7 | * @since 2018/11/29 上午12:48 8 | */ 9 | public interface OnCompleteListener { 10 | /** 11 | * 引导完成 12 | */ 13 | void onComplete(); 14 | } 15 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/guidview/OnViewInflateListener.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.guidview; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * 监听自定义view的加载 7 | * 8 | * @author xuexiang 9 | * @since 2018/11/29 上午12:48 10 | */ 11 | public interface OnViewInflateListener { 12 | void onViewInflated(View view); 13 | } 14 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/imageview/preview/loader/OnVideoClickListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 xuexiangjys(xuexiangjys@163.com) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.xuexiang.xui.widget.imageview.preview.loader; 18 | 19 | /** 20 | * 视频点击监听 21 | * 22 | * @author xuexiang 23 | * @since 2018/12/5 上午11:09 24 | */ 25 | public interface OnVideoClickListener { 26 | 27 | void onPlayerVideo(String url); 28 | } 29 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/picker/wheelview/interfaces/IPickerViewItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.xuexiang.xui.widget.picker.wheelview.interfaces; 18 | 19 | /** 20 | * 选项条目 21 | * 22 | * @author xuexiang 23 | * @since 2019/1/1 下午5:11 24 | */ 25 | public interface IPickerViewItem { 26 | 27 | /** 28 | * @return 获取选项显示 29 | */ 30 | String getPickerViewText(); 31 | } 32 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/picker/widget/listener/CustomListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.xuexiang.xui.widget.picker.widget.listener; 18 | 19 | import android.view.View; 20 | 21 | /** 22 | * 自定义布局监听 23 | * 24 | * @author xuexiang 25 | * @since 2019/1/1 下午8:21 26 | */ 27 | public interface CustomListener { 28 | 29 | void customLayout(View v); 30 | } 31 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/picker/widget/listener/ISelectTimeCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.xuexiang.xui.widget.picker.widget.listener; 18 | 19 | /** 20 | * 时间选择的回调 21 | * 22 | * @author xuexiang 23 | * @since 2019/1/1 下午7:07 24 | */ 25 | public interface ISelectTimeCallback { 26 | 27 | void onTimeSelectChanged(); 28 | } 29 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/picker/widget/listener/OnTimeSelectChangeListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.xuexiang.xui.widget.picker.widget.listener; 18 | 19 | import java.util.Date; 20 | 21 | /** 22 | * 时间选择变化的监听器 23 | * 24 | * @author xuexiang 25 | * @since 2019/1/1 下午7:05 26 | */ 27 | public interface OnTimeSelectChangeListener { 28 | 29 | void onTimeSelectChanged(Date date); 30 | } 31 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/popupwindow/easypopup/HorizontalGravity.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.popupwindow.easypopup; 2 | 3 | import androidx.annotation.IntDef; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | * 水平布局方式 10 | * 11 | * @author xuexiang 12 | * @since 2019/1/14 下午10:07 13 | */ 14 | @IntDef({ 15 | HorizontalGravity.CENTER, 16 | HorizontalGravity.LEFT, 17 | HorizontalGravity.RIGHT, 18 | HorizontalGravity.ALIGN_LEFT, 19 | HorizontalGravity.ALIGN_RIGHT, 20 | }) 21 | @Retention(RetentionPolicy.SOURCE) 22 | public @interface HorizontalGravity { 23 | int CENTER = 0; 24 | int LEFT = 1; 25 | int RIGHT = 2; 26 | int ALIGN_LEFT = 3; 27 | int ALIGN_RIGHT = 4; 28 | } -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/popupwindow/easypopup/VerticalGravity.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.popupwindow.easypopup; 2 | 3 | import androidx.annotation.IntDef; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | * 垂直布局方式 10 | * 11 | * @author xuexiang 12 | * @since 2019/1/14 下午10:05 13 | */ 14 | @IntDef({ 15 | VerticalGravity.CENTER, 16 | VerticalGravity.ABOVE, 17 | VerticalGravity.BELOW, 18 | VerticalGravity.ALIGN_TOP, 19 | VerticalGravity.ALIGN_BOTTOM, 20 | }) 21 | @Retention(RetentionPolicy.SOURCE) 22 | public @interface VerticalGravity { 23 | int CENTER = 0; 24 | int ABOVE = 1; 25 | int BELOW = 2; 26 | int ALIGN_TOP = 3; 27 | int ALIGN_BOTTOM = 4; 28 | } 29 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/progress/loading/LoadingCancelListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 xuexiangjys(xuexiangjys@163.com) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.xuexiang.xui.widget.progress.loading; 19 | 20 | /** 21 | * 取消loading的监听 22 | * 23 | * @author xuexiang 24 | * @since 2019/1/14 下午10:15 25 | */ 26 | public interface LoadingCancelListener { 27 | /** 28 | * 取消loading 29 | */ 30 | void onCancelLoading(); 31 | } 32 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/progress/materialprogressbar/MaterialProgressDrawable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 xuexiangjys(xuexiangjys@163.com) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.xuexiang.xui.widget.progress.materialprogressbar; 19 | 20 | interface MaterialProgressDrawable {} 21 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/slideback/callback/SlideBackCallBack.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.xuexiang.xui.widget.slideback.callback; 19 | 20 | /** 21 | * 侧滑事件监听 22 | * 23 | * @author xuexiang 24 | * @since 2019-08-30 9:28 25 | */ 26 | public interface SlideBackCallBack { 27 | /** 28 | * 侧滑事件 29 | */ 30 | void onSlideBack(); 31 | } -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/spinner/editspinner/EditSpinnerFilter.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.spinner.editspinner; 2 | 3 | /** 4 | * 监听输入并过滤 5 | * 6 | * @author xuexiang 7 | * @since 2019/1/14 下午10:14 8 | */ 9 | public interface EditSpinnerFilter { 10 | /** 11 | * editText输入监听 12 | * 13 | * @param keyword 关键字 14 | * @return 是否找到匹配项 15 | */ 16 | boolean onFilter(String keyword); 17 | } 18 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/statelayout/SimpleAnimationListener.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.statelayout; 2 | 3 | import android.view.animation.Animation; 4 | 5 | /** 6 | * 简易的动画监听 7 | * 8 | * @author xuexiang 9 | * @since 2019-06-06 00:42 10 | */ 11 | public class SimpleAnimationListener implements Animation.AnimationListener { 12 | 13 | @Override 14 | public void onAnimationStart(Animation animation) { 15 | } 16 | 17 | @Override 18 | public void onAnimationEnd(Animation animation) { 19 | } 20 | 21 | @Override 22 | public void onAnimationRepeat(Animation animation) { 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/textview/AutoMoveTextView.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.textview; 2 | 3 | import android.content.Context; 4 | import android.text.TextUtils; 5 | import android.util.AttributeSet; 6 | 7 | import androidx.appcompat.widget.AppCompatTextView; 8 | 9 | /** 10 | * 自定义跑马灯Textview类 11 | * 12 | * @author xuexiang 13 | * @since 2018/11/22 上午12:36 14 | */ 15 | public class AutoMoveTextView extends AppCompatTextView { 16 | public AutoMoveTextView(Context context) { 17 | super(context); 18 | setEllipsize(TextUtils.TruncateAt.MARQUEE); 19 | } 20 | 21 | public AutoMoveTextView(Context context, AttributeSet attrs) { 22 | super(context, attrs); 23 | setEllipsize(TextUtils.TruncateAt.MARQUEE); 24 | } 25 | 26 | public AutoMoveTextView(Context context, AttributeSet attrs, int defStyle) { 27 | super(context, attrs, defStyle); 28 | setEllipsize(TextUtils.TruncateAt.MARQUEE); 29 | } 30 | 31 | @Override 32 | public boolean isFocused() { 33 | return true; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /xui/src/main/java/com/xuexiang/xui/widget/textview/marqueen/SimpleNoticeMF.java: -------------------------------------------------------------------------------- 1 | package com.xuexiang.xui.widget.textview.marqueen; 2 | 3 | import android.content.Context; 4 | import android.view.LayoutInflater; 5 | import android.widget.TextView; 6 | 7 | import com.xuexiang.xui.R; 8 | 9 | /** 10 | * 简单字幕 11 | */ 12 | public class SimpleNoticeMF extends MarqueeFactory { 13 | private LayoutInflater inflater; 14 | 15 | public SimpleNoticeMF(Context context) { 16 | super(context); 17 | inflater = LayoutInflater.from(context); 18 | } 19 | 20 | @Override 21 | public TextView generateMarqueeItemView(String data) { 22 | TextView view = (TextView) inflater.inflate(R.layout.marqueen_layout_notice_item, null); 23 | view.setText(data); 24 | return view; 25 | } 26 | } -------------------------------------------------------------------------------- /xui/src/main/res/anim/cookiebar_interpolator_slight_anticipate.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/cookiebar_interpolator_slight_overshoot.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/ddm_mask_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/ddm_mask_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/ddm_menu_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/ddm_menu_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/gcv_fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/gcv_fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/marquee_bottom_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/marquee_bottom_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/marquee_left_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/marquee_left_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/marquee_right_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/marquee_right_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/marquee_top_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/marquee_top_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/md_decelerate_cubic.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/md_popup_enter.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/md_popup_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/picker_view_dialog_scale_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/picker_view_dialog_scale_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_grow_from_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_grow_from_bottomleft_to_topright.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_grow_from_bottomright_to_topleft.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_grow_from_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_grow_from_topleft_to_bottomright.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_grow_from_topright_to_bottomleft.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_shrink_from_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_shrink_from_bottomleft_to_topright.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_shrink_from_bottomright_to_topleft.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_shrink_from_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_shrink_from_topleft_to_bottomright.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/pop_shrink_from_topright_to_bottomleft.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/srb_rotation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/srb_scale_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/srb_scale_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/sv_slide_in.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /xui/src/main/res/anim/sv_slide_out.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /xui/src/main/res/color/ms_dropdown_item_textcolor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/color/swb_md_back_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/color/xui_default_flow_tag_selector_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/color/xui_default_round_btn_blue_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/color/xui_default_round_btn_blue_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/color/xui_default_round_btn_gray_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/color/xui_default_round_btn_green_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/color/xui_default_round_btn_white_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/srb_ic_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/srb_ic_empty.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/srb_ic_filled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/srb_ic_filled.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/xtoast_frame.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/xtoast_frame.9.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/xui_bg_center_popwindow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/xui_bg_center_popwindow.9.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/xui_ic_arrow_down_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/xui_ic_arrow_down_black.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/xui_ic_default_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/xui_ic_default_img.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/xui_ic_expand_less_black_12dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/xui_ic_expand_less_black_12dp.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/xui_ic_expand_more_black_12dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/xui_ic_expand_more_black_12dp.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/xui_ic_no_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/xui_ic_no_img.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/xui_icon_check_mark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/xui_icon_check_mark.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/xui_icon_tip_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/xui_icon_tip_new.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/xui_icon_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/xui_icon_video.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-hdpi/xui_popup_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-hdpi/xui_popup_arrow_down.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-nodpi/xui_divider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-nodpi/xui_divider.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/md_btn_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/md_btn_selected_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/ms_drop_down_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/ms_drop_down_bg_radius.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/ms_ic_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-v17/ms_ic_arrow_down.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_bg_dialog_radius_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_bg_spinner_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_bg_spinner_touch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_border_separator_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_color_blue_btn_disable.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_color_blue_btn_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_color_blue_btn_touch.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_color_edittext_disable.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_color_edittext_error.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_color_edittext_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_color_edittext_touch.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_color_primary_btn_normal.xml: -------------------------------------------------------------------------------- 1 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_color_primary_btn_touch.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_list_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | 10 | 12 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_list_item_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_config_popup_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | 10 | 12 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_divider_top_bitmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_ic_default_clear_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-v17/xui_ic_default_clear_btn.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_ic_navigation_back_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-v17/xui_ic_navigation_back_white.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_icon_checkbox_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-v17/xui_icon_checkbox_checked.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_icon_checkbox_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-v17/xui_icon_checkbox_normal.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_list_item_bg_with_border_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_list_item_bg_with_border_bottom_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v17/xui_list_item_bg_with_border_none_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/ms_ic_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/pet_icon_visibility_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/pet_icon_visibility_off_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_config_bg_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_config_color_blue_btn_disable.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_config_color_blue_btn_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_config_color_blue_btn_touch.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_config_color_edittext_disable.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_config_color_edittext_error.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_config_color_edittext_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_config_color_edittext_touch.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_config_color_primary_btn_normal.xml: -------------------------------------------------------------------------------- 1 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_config_color_primary_btn_touch.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_default_flow_tag_bg_rect_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_icon_checkbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-v21/xui_icon_checkbox_normal.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable-xxhdpi/xui_bg_bubble_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-xxhdpi/xui_bg_bubble_blue.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-xxhdpi/xui_ic_slider_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-xxhdpi/xui_ic_slider_icon.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable-xxxhdpi/xui_popup_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aystshen/Android-FactoryTest/7194da635cc46d2f087caa0fe57d8823151e5a67/xui/src/main/res/drawable-xxxhdpi/xui_popup_bg.9.png -------------------------------------------------------------------------------- /xui/src/main/res/drawable/md_btn_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/md_btn_selected_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/md_btn_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/md_btn_selector_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/md_item_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/md_item_selected_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/md_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/md_selector_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/md_transparent.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/mlet_selector_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/ms_background_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/ms_drop_down_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/ms_drop_down_bg_radius.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/ms_ic_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/ms_ic_arrow_up.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/pe_rounded_border_tv.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/pet_icon_visibility_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/pet_icon_visibility_off_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/rb_bg_disabled.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/rb_bg_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/rb_bg_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/rb_bg_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/stf_ic_empty.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/stf_ic_error.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/stf_ic_location_off.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/stf_ic_offline.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/stv_btn_selector_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/tcv_left_option.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 14 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/vcet_shape_bg_focus.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/vcet_shape_bg_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/vcet_shape_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xtoast_ic_check_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xtoast_ic_clear_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xtoast_ic_error_outline_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xtoast_ic_info_outline_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_bg_dialog_radius_black.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_bg_dialog_radius_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 21 | 22 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_bg_edittext.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_bg_spinner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 8 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_bg_spinner_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_bg_spinner_touch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_bg_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_border_separator_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_color_blue_btn_disable.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_color_blue_btn_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_color_blue_btn_touch.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_color_edittext_disable.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_color_edittext_error.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_color_edittext_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_color_edittext_touch.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_color_primary_btn_normal.xml: -------------------------------------------------------------------------------- 1 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_color_primary_btn_touch.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_list_item_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_config_popup_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | 10 | 12 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_default_flow_tag_bg_rect_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_divider_top_bitmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_ic_action_navigation_arrow_back.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_ic_action_navigation_clear.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_ic_expand_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_ic_expand_arrow_up.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_icon_checkbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_icon_checkbox_normal.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_icon_switch_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_list_item_bg_with_border_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_list_item_bg_with_border_bottom_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_list_item_bg_with_border_none_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_list_item_bg_with_border_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_popup_arrow_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_shape_transparent.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_sign_count_view_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /xui/src/main/res/drawable/xui_tips_point.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /xui/src/main/res/layout-large/xui_layout_xtoast.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 18 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /xui/src/main/res/layout-xlarge/xui_layout_xtoast.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 18 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/gcv_layout_image.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/gcv_layout_title.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/marqueen_layout_notice_item.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/ms_layout_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/msv_layout_loading_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/preview_activity_video_player.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xmd_layout_stub_progress_indeterminate_horizontal.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 16 | 17 | 23 | 24 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_activity_guide.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_adapter_default_flow_tag_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_adapter_simple_image.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_adapter_simple_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_bottom_sheet_grid_item_subscript.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_bottom_sheet_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 20 | 21 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_bottom_sheet_list_item_mark.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_include_titlebar.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_layout_common_list_item_tip_new.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_layout_edit_spinner.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 22 | 23 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_layout_spinner_drop_down_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_layout_spinner_selected_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_layout_verify_code.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | 15 | 16 | 17 | 23 | 24 | -------------------------------------------------------------------------------- /xui/src/main/res/layout/xui_layout_xtoast.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 18 | 19 | 24 | 25 | --------------------------------------------------------------------------------