├── .gitignore ├── README.md ├── README_EN.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── cg │ │ └── baseproject │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── ivy │ │ │ └── baseproject │ │ │ └── test │ │ │ ├── AppApplication.java │ │ │ ├── activity │ │ │ ├── FileImageActivity.java │ │ │ ├── FocusTestActivity.java │ │ │ ├── GirlListActivity.java │ │ │ ├── MainActivity.java │ │ │ ├── MovieListActivity.java │ │ │ ├── MultiFragmentActivity.java │ │ │ ├── NetImageActivity.java │ │ │ ├── PermissionActivity.java │ │ │ ├── ResolutionAdaptionDemoActivity.java │ │ │ ├── ResolutionTestActivity.java │ │ │ ├── ScreenInfoActivity.java │ │ │ ├── SplashActivity.java │ │ │ └── UiWidgetActivity.java │ │ │ ├── adapter │ │ │ ├── GanKAdapter.java │ │ │ ├── MainInterfaceListAdapter.java │ │ │ └── MovieAdapter.java │ │ │ ├── api │ │ │ ├── AppConfig.java │ │ │ └── RequestApiInterface.java │ │ │ ├── data │ │ │ ├── MainInterfaceItem.java │ │ │ ├── bean │ │ │ │ ├── Bean.java │ │ │ │ └── response │ │ │ │ │ ├── AirForecast.java │ │ │ │ │ ├── EnvProportion.java │ │ │ │ │ └── LoginBean.java │ │ │ └── response │ │ │ │ ├── AppList.java │ │ │ │ ├── AppRecommend.java │ │ │ │ ├── BookSearchResponse.java │ │ │ │ ├── IpResult.java │ │ │ │ ├── MyResponse.java │ │ │ │ └── SeachResult.java │ │ │ ├── deprecated │ │ │ └── RequestBusiness.java │ │ │ ├── sample │ │ │ ├── MainActivityFragment.java │ │ │ ├── SampleActivity.java │ │ │ ├── SampleContentPageFragment.java │ │ │ ├── SampleFragment.java │ │ │ └── SampleFragmentActivity.java │ │ │ ├── utils │ │ │ └── ScreenUtils.java │ │ │ └── view │ │ │ └── decoration │ │ │ ├── MovieDecoration.java │ │ │ ├── swtichgridlist │ │ │ ├── AutoFitRecyclerView.java │ │ │ ├── GridRecyclerView.java │ │ │ ├── MainInterfaceItem.java │ │ │ ├── ObservableScrollViewCallbacks.java │ │ │ ├── ScrollState.java │ │ │ └── Scrollable.java │ │ │ └── view │ │ │ └── common │ │ │ └── HomeTitle.java │ └── res │ │ ├── anim │ │ ├── grid_layout_animation.xml │ │ └── slide_in_bottom.xml │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable-xxxhdpi │ │ └── artboard_1xxxhdpi.png │ │ ├── drawable │ │ ├── bg_list_item.xml │ │ ├── focused.9.png │ │ ├── ic_add_black_26dp.xml │ │ ├── ic_crop_free_black_24dp.xml │ │ ├── ic_index_rank_bg.xml │ │ ├── ic_launcher_background.xml │ │ ├── item_shape.xml │ │ ├── line_h_gray.xml │ │ ├── line_v_grey.xml │ │ ├── shape_spinner_radius.xml │ │ ├── vbtn_arrow_back.xml │ │ ├── vbtn_arrow_forward.xml │ │ ├── vbtn_arrow_more.xml │ │ ├── vbtn_titlebar_me.xml │ │ ├── vbtn_titlebar_share.xml │ │ ├── vic_github_cat1.xml │ │ ├── vic_github_cat2.xml │ │ ├── vic_github_cat3.xml │ │ ├── vic_github_grey1.xml │ │ ├── vic_github_grey2.xml │ │ ├── vic_github_grey3.xml │ │ ├── vic_h_line.xml │ │ ├── vic_icon_githubcat.xml │ │ ├── vic_me_qrcode.xml │ │ ├── vic_me_set.xml │ │ ├── vic_my_publish.xml │ │ └── vic_portrait_github_cat.xml │ │ ├── layout │ │ ├── activity_file_image.xml │ │ ├── activity_focus_test.xml │ │ ├── activity_fragmentmain.xml │ │ ├── activity_girl_list.xml │ │ ├── activity_main.xml │ │ ├── activity_main_old.xml │ │ ├── activity_movie_list.xml │ │ ├── activity_multi_fragment.xml │ │ ├── activity_netimage.xml │ │ ├── activity_permission.xml │ │ ├── activity_resolution_adaption_demo.xml │ │ ├── activity_resolution_test.xml │ │ ├── activity_sample.xml │ │ ├── activity_sample_fragment.xml │ │ ├── activity_samplefragment_main.xml │ │ ├── activity_screen_info.xml │ │ ├── activity_splash_layout.xml │ │ ├── activity_ui_widget.xml │ │ ├── bad_network.xml │ │ ├── cardview_constraint.xml │ │ ├── cardviewfix_constraint.xml │ │ ├── constraint_layout.xml │ │ ├── content_file_image.xml │ │ ├── content_girl_list.xml │ │ ├── content_movie_list.xml │ │ ├── content_permission.xml │ │ ├── content_resolution_adaption_demo.xml │ │ ├── content_resolution_test.xml │ │ ├── content_screen_info.xml │ │ ├── foot_bar.xml │ │ ├── fragment_sample.xml │ │ ├── fragment_scrollview_root.xml │ │ ├── frament_sample_content.xml │ │ ├── gank_item.xml │ │ ├── grid_item.xml │ │ ├── home_title.xml │ │ ├── list_maininterface_item.xml │ │ ├── moive_item.xml │ │ ├── recycleview_header.xml │ │ ├── samplefragment_content_main.xml │ │ ├── temp.xml │ │ ├── test.xml │ │ ├── test1.xml │ │ ├── top_titlebar.xml │ │ └── top_titlebar_base.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── github_cat.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ └── qr_code.png │ │ ├── mipmap-xxhdpi │ │ ├── card_cover_a.png │ │ ├── card_cover_b.png │ │ ├── card_cover_c.png │ │ ├── card_cover_d.png │ │ ├── card_cover_e.png │ │ ├── card_cover_f.png │ │ ├── github_cat.png │ │ ├── ic_action_switch_grid.png │ │ ├── ic_action_switch_list.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── logo.png │ │ ├── qr_code.png │ │ ├── ren_nor.png │ │ ├── scrollview_bottom.png │ │ └── topbar_share_normal.png │ │ ├── mipmap-xxxhdpi │ │ ├── github_cat.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ └── qr_code.png │ │ ├── values-nodpi-1280x672 │ │ └── dimen_px.xml │ │ ├── values-nodpi-1280x720 │ │ └── dimen_px.xml │ │ ├── values-nodpi-1920x1008 │ │ └── dimen_px.xml │ │ ├── values-nodpi-1920x1080 │ │ └── dimen_px.xml │ │ ├── values-nodpi-2560x1440 │ │ └── dimen_px.xml │ │ ├── values-nodpi-3840x2160 │ │ └── dimen_px.xml │ │ └── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── cg │ └── baseproject │ └── ExampleUnitTest.java ├── baseproject ├── .gitignore ├── build.gradle ├── libs │ ├── commons-codec-1.11.jar │ ├── commons-lang3-3.7.jar │ ├── pinyin4j-2.5.0.jar │ └── shiro-all-1.9.0.jar ├── proguard-rules.pro └── src │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── cg │ │ │ └── baseproject │ │ │ ├── BaseApplication.java │ │ │ ├── algorithm │ │ │ ├── ciphers │ │ │ │ ├── Caesar.java │ │ │ │ └── RSA.java │ │ │ ├── conversions │ │ │ │ ├── AnyBaseToAnyBase.java │ │ │ │ ├── AnyBaseToDecimal.java │ │ │ │ ├── BinaryToDecimal.java │ │ │ │ ├── BinaryToHexadecimal.java │ │ │ │ ├── BinaryToOctal.java │ │ │ │ ├── DecimalToAnyBase.java │ │ │ │ ├── DecimalToBinary.java │ │ │ │ ├── DecimalToHexaDecimal.java │ │ │ │ ├── DecimalToOctal.java │ │ │ │ ├── HexToOct.java │ │ │ │ └── OctalToDecimal.java │ │ │ ├── searches │ │ │ │ ├── BinarySearch.java │ │ │ │ ├── LinearSearch.java │ │ │ │ ├── SaddlebackSearch.java │ │ │ │ ├── TernarySearch.java │ │ │ │ └── interpolationSearch.java │ │ │ └── sorts │ │ │ │ ├── BogoSort.java │ │ │ │ ├── BubbleSort.java │ │ │ │ ├── CocktailShakerSort.java │ │ │ │ ├── CountingSort.java │ │ │ │ ├── HeapSort.java │ │ │ │ ├── InsertionSort.java │ │ │ │ ├── MergeSort.java │ │ │ │ ├── QuickSort.java │ │ │ │ ├── SelectionSort.java │ │ │ │ ├── ShellSort.java │ │ │ │ ├── cyclesort.java │ │ │ │ └── radixSort.java │ │ │ ├── base │ │ │ ├── BaseActivity.java │ │ │ ├── BaseActivityTitlebar.java │ │ │ ├── BaseContentPageFragment.java │ │ │ ├── BaseModel.java │ │ │ ├── BaseObserver.java │ │ │ ├── BasePresenter.java │ │ │ ├── BaseSupportActivity.java │ │ │ ├── BaseSupportFragment.java │ │ │ ├── BaseTempActivity.java │ │ │ ├── BaseUiView.java │ │ │ └── ContentPage.java │ │ │ ├── cache │ │ │ ├── AppACache.java │ │ │ ├── AppCleanMgr.java │ │ │ ├── Cache.java │ │ │ ├── CacheManager.java │ │ │ ├── DataCache.java │ │ │ └── DataCleanManager.java │ │ │ ├── configs │ │ │ ├── BaseProjectConfig.java │ │ │ └── IConstants.java │ │ │ ├── constant │ │ │ ├── MemoryConstants.java │ │ │ ├── PermissionConstants.java │ │ │ ├── RegexConstants.java │ │ │ ├── ServerReturnCode.java │ │ │ ├── Symbols.java │ │ │ └── TimeConstants.java │ │ │ ├── crash │ │ │ └── CrashHandler.java │ │ │ ├── deprecated │ │ │ ├── BaseSubscriber.java │ │ │ ├── DeprecatedExceptionHandle.java │ │ │ └── DialogSubscriber.java │ │ │ ├── encryption │ │ │ ├── AESUtils.java │ │ │ ├── Base64Utils.java │ │ │ ├── Base64UtilsOld.java │ │ │ ├── CRC16Check.java │ │ │ ├── DESUtils.java │ │ │ ├── DigestUtils.java │ │ │ ├── EncryptUtils.java │ │ │ ├── MD5Utils.java │ │ │ ├── RSAUtils.java │ │ │ ├── SHAUtils.java │ │ │ └── TripleDESUtils.java │ │ │ ├── exception │ │ │ └── DataException.java │ │ │ ├── helper │ │ │ ├── BottomNavigationViewHelper.java │ │ │ └── DialogHelper.java │ │ │ ├── interfaces │ │ │ ├── PermissionListener.java │ │ │ └── SubscriberOnNextListener.java │ │ │ ├── manager │ │ │ ├── ActivityStackManager.java │ │ │ ├── AppDavikActivityManager.java │ │ │ ├── AppKeyBoardManager.java │ │ │ ├── AppLogMessageMgr.java │ │ │ ├── AppNativeImageManager.java │ │ │ ├── AppSystemBarManager.java │ │ │ ├── AppWifiHelperManager.java │ │ │ ├── FragmentManager.java │ │ │ ├── LogManager.java │ │ │ ├── ScreenManager.java │ │ │ ├── ScreenManagerSupportActivity.java │ │ │ ├── SystemPropertiesProxyManager.java │ │ │ └── WebViewManager.java │ │ │ ├── request │ │ │ ├── data │ │ │ │ ├── ActivityBean.java │ │ │ │ ├── BaseResponse.java │ │ │ │ ├── DataBean.java │ │ │ │ ├── FromJsonUtils.java │ │ │ │ ├── GenericType.java │ │ │ │ ├── HttpStatus.java │ │ │ │ ├── JsonFormatParser.java │ │ │ │ ├── JsonTest.java │ │ │ │ ├── bean │ │ │ │ │ └── GirlsBean.java │ │ │ │ ├── entity │ │ │ │ │ ├── HttpResult.java │ │ │ │ │ └── Subject.java │ │ │ │ ├── pojo │ │ │ │ │ ├── GankEntry.java │ │ │ │ │ ├── GankResp.java │ │ │ │ │ ├── IpResult.java │ │ │ │ │ ├── Movie.java │ │ │ │ │ ├── MovieSubject.java │ │ │ │ │ ├── User.java │ │ │ │ │ └── WrapperRspEntity.java │ │ │ │ └── response │ │ │ │ │ ├── BookSearchResponse.java │ │ │ │ │ ├── GankPostResponse.java │ │ │ │ │ ├── NotLoginResponse.java │ │ │ │ │ └── myinterface │ │ │ │ │ ├── MyResponse.java │ │ │ │ │ └── MyResponseException.java │ │ │ ├── exception │ │ │ │ ├── ApiErrorCode.java │ │ │ │ ├── ApiException.java │ │ │ │ ├── ERROR.java │ │ │ │ ├── ExceptionEngine.java │ │ │ │ ├── ResultException.java │ │ │ │ └── ServerException.java │ │ │ ├── retrofit │ │ │ │ ├── BaseRequestBusiness.java │ │ │ │ ├── RequestAPI.java │ │ │ │ ├── RetrofitRequestManager.java │ │ │ │ ├── cache │ │ │ │ │ ├── CookieJar.java │ │ │ │ │ └── RetrofitCache.java │ │ │ │ ├── converter │ │ │ │ │ ├── FastJsonRequestBodyConverter.java │ │ │ │ │ ├── FastJsonResponseBodyConverter.java │ │ │ │ │ ├── MyGsonRequestBodyConverter.java │ │ │ │ │ ├── MyGsonResponseBodyConverter.java │ │ │ │ │ ├── MyStringRequestBodyConverter.java │ │ │ │ │ └── MyStringResponseConverter.java │ │ │ │ ├── factory │ │ │ │ │ ├── FastJsonConverterFactory.java │ │ │ │ │ ├── MyGsonConverterFactory.java │ │ │ │ │ └── MyStringConverterFactory.java │ │ │ │ ├── interceptor │ │ │ │ │ ├── BaseUrlInterceptor.java │ │ │ │ │ ├── CacheInterceptor.java │ │ │ │ │ ├── CommonParamsInterceptor.java │ │ │ │ │ ├── DynamicBaseUrl.java │ │ │ │ │ ├── EncryptInterceptor.java │ │ │ │ │ ├── HeaderInterceptor.java │ │ │ │ │ ├── HttpCommonInterceptor.java │ │ │ │ │ ├── LoggingInterceptor.java │ │ │ │ │ ├── QueryParameterInterceptor.java │ │ │ │ │ └── ResponseTimeInterceptors.java │ │ │ │ ├── progress │ │ │ │ │ ├── ProgressCancelListener.java │ │ │ │ │ └── ProgressDialogHandler.java │ │ │ │ └── subscriber │ │ │ │ │ └── ProgressSubscriber.java │ │ │ ├── ssl │ │ │ │ ├── EasyX509TrustManager.java │ │ │ │ ├── HttpsUtils.java │ │ │ │ └── SSLUtil.java │ │ │ └── volley │ │ │ │ ├── VolleyGsonRequest.java │ │ │ │ ├── VolleyRequestBusiness.java │ │ │ │ └── VolleyRequestManager.java │ │ │ ├── rx │ │ │ └── rxbus │ │ │ │ ├── AbstractSubscriber.java │ │ │ │ ├── AnnotatedSubscriber.java │ │ │ │ ├── Bus.java │ │ │ │ ├── BusProvider.java │ │ │ │ ├── CustomSubscriber.java │ │ │ │ ├── RxBus.java │ │ │ │ ├── Subscribe.java │ │ │ │ └── event │ │ │ │ ├── Event.java │ │ │ │ ├── EventTypes.java │ │ │ │ ├── RxBusListener.java │ │ │ │ └── RxBusListenerManager.java │ │ │ ├── screenadaptation │ │ │ └── base │ │ │ │ └── BaseScreenAdaptActivity.java │ │ │ ├── security │ │ │ ├── Aauthority.java │ │ │ ├── authority │ │ │ │ └── TestShiro.java │ │ │ └── token │ │ │ │ └── JwtUtils.java │ │ │ ├── service │ │ │ └── DownloadService.java │ │ │ ├── utils │ │ │ ├── ConvertUtils.java │ │ │ ├── DateUtils.java │ │ │ ├── FileUtils.java │ │ │ ├── IDCardUtils.java │ │ │ ├── JsonParseUtils.java │ │ │ ├── JsonUtils.java │ │ │ ├── NioFileUtiles.java │ │ │ ├── NullUtils.java │ │ │ ├── PinyinUtils.java │ │ │ ├── RadixCoversion.java │ │ │ ├── RandomUtils.java │ │ │ ├── ReflectionUtils.java │ │ │ ├── SDCardUtils.java │ │ │ ├── SingletonUtils.java │ │ │ ├── StringUtils.java │ │ │ ├── ThreadUtils.java │ │ │ ├── URLUtils.java │ │ │ ├── ValidateUtils.java │ │ │ ├── ZipUtils.java │ │ │ ├── android │ │ │ │ ├── ActivityUtils.java │ │ │ │ ├── AdbUtils.java │ │ │ │ ├── AndroidSystemUtils.java │ │ │ │ ├── AnimationUtils.java │ │ │ │ ├── AppUtils.java │ │ │ │ ├── AssetsUtils.java │ │ │ │ ├── CameraUtils.java │ │ │ │ ├── Countdown.java │ │ │ │ ├── DeviceStatusUtils.java │ │ │ │ ├── DialogUtils.java │ │ │ │ ├── DimensUtils.java │ │ │ │ ├── EasyPermissionUtils.java │ │ │ │ ├── FocusUtils.java │ │ │ │ ├── FragmentUtils.java │ │ │ │ ├── HtmlUtils.java │ │ │ │ ├── KeyBoardUtils.java │ │ │ │ ├── LogUtils.java │ │ │ │ ├── NetworkUtils.java │ │ │ │ ├── PackageUtils.java │ │ │ │ ├── PermissionUtils.java │ │ │ │ ├── PollingUtils.java │ │ │ │ ├── ResolutionAdaptationUtils.java │ │ │ │ ├── ResourceUtils.java │ │ │ │ ├── ScreenShotUtils.java │ │ │ │ ├── ScreenUtils.java │ │ │ │ ├── SettingUtils.java │ │ │ │ ├── SharedPreferencesUtils.java │ │ │ │ ├── ShellUtils.java │ │ │ │ ├── SpannableStringUtils.java │ │ │ │ ├── SystemPropertiesProxy.java │ │ │ │ ├── SystemUtils.java │ │ │ │ ├── ToastUtils.java │ │ │ │ ├── Utils.java │ │ │ │ ├── ViewUtils.java │ │ │ │ └── image │ │ │ │ │ ├── ImageUtils.java │ │ │ │ │ ├── PicassoUtils.java │ │ │ │ │ └── TintUtils.java │ │ │ ├── apkupdate │ │ │ │ ├── ApkDownloadManager.java │ │ │ │ ├── ApkInstallReceiver.java │ │ │ │ └── ApkUpdateUtils.java │ │ │ ├── media │ │ │ │ ├── M3U8ParserUtiles.java │ │ │ │ ├── MediaPlayerUtiles.java │ │ │ │ └── MiscUtils.java │ │ │ ├── serialize │ │ │ │ ├── ParcelUtils.java │ │ │ │ └── SerializeUtils.java │ │ │ └── version │ │ │ │ └── VesionInfoItem.java │ │ │ └── view │ │ │ ├── FadeInTextView.java │ │ │ ├── loading │ │ │ ├── CommonLoading.java │ │ │ ├── GraduallyTextView.java │ │ │ ├── bounce │ │ │ │ └── BounceLoadingView.java │ │ │ ├── leafloading │ │ │ │ ├── LeafLoadingView.java │ │ │ │ └── UiUtils.java │ │ │ └── progress │ │ │ │ └── ProgressLoading.java │ │ │ ├── nicespinner │ │ │ ├── NiceSpinner.java │ │ │ ├── NiceSpinnerAdapter.java │ │ │ ├── NiceSpinnerAdapterWrapper.java │ │ │ ├── NiceSpinnerBaseAdapter.java │ │ │ ├── SimpleSpinnerTextFormatter.java │ │ │ └── SpinnerTextFormatter.java │ │ │ ├── refresh │ │ │ └── LoadingView.java │ │ │ ├── searchview │ │ │ ├── EditText_Clear.java │ │ │ ├── ICallBack.java │ │ │ ├── RecordSQLiteOpenHelper.java │ │ │ ├── SearchListView.java │ │ │ ├── SearchView.java │ │ │ └── bCallBack.java │ │ │ └── view │ │ │ └── progress │ │ │ └── ProgressBarLayout.java │ ├── res │ │ ├── anim │ │ │ ├── dialog_enter.xml │ │ │ ├── dialog_exit.xml │ │ │ └── rotate_animation.xml │ │ ├── color │ │ │ ├── color_bt_top_right.xml │ │ │ └── color_btn1.xml │ │ ├── drawable-nodpi │ │ │ └── drop_down_shadow.9.png │ │ ├── drawable-xhdpi │ │ │ └── ic_arrow_drop_down_black_24dp.png │ │ ├── drawable-xxhdpi │ │ │ ├── back.png │ │ │ ├── clear.png │ │ │ ├── ic_arrow_drop_down_black_24dp.png │ │ │ ├── ic_loading_white_01.png │ │ │ ├── ic_loading_white_02.png │ │ │ ├── ic_loading_white_03.png │ │ │ ├── ic_loading_white_04.png │ │ │ ├── ic_loading_white_05.png │ │ │ ├── ic_loading_white_06.png │ │ │ ├── ic_loading_white_07.png │ │ │ ├── ic_loading_white_08.png │ │ │ ├── ic_loading_white_09.png │ │ │ ├── ic_loading_white_10.png │ │ │ ├── ic_loading_white_11.png │ │ │ ├── ic_loading_white_12.png │ │ │ ├── img_load_error.png │ │ │ ├── img_loading.png │ │ │ └── search.png │ │ ├── drawable-xxxhdpi │ │ │ └── ic_arrow_drop_down_black_24dp.png │ │ ├── drawable │ │ │ ├── arrow.xml │ │ │ ├── bg_alpha_twenty.xml │ │ │ ├── btn_back.xml │ │ │ ├── dialog_loading.xml │ │ │ ├── line_dashed.xml │ │ │ ├── line_h_gray.xml │ │ │ ├── line_solid.xml │ │ │ ├── load_progress_bg.xml │ │ │ ├── loading_bg.9.png │ │ │ ├── progress_drawable_white.xml │ │ │ ├── selector.xml │ │ │ ├── shape_radius.xml │ │ │ ├── spinner_drawable.xml │ │ │ ├── sys_toast.9.png │ │ │ ├── vbtn_arrow_back.xml │ │ │ ├── vbtn_arrow_forward.xml │ │ │ ├── vbtn_arrow_more.xml │ │ │ ├── vbtn_titlebar_me.xml │ │ │ └── vbtn_titlebar_share.xml │ │ ├── layout │ │ │ ├── activity_base.xml │ │ │ ├── activity_second.xml │ │ │ ├── bad_network.xml │ │ │ ├── content_main.xml │ │ │ ├── content_page_loading.xml │ │ │ ├── dialog_loading.xml │ │ │ ├── layout_header_base.xml │ │ │ ├── loading.xml │ │ │ ├── progress_bar_layout.xml │ │ │ ├── progress_loading.xml │ │ │ ├── progressbar_dialog.xml │ │ │ ├── reset_error_layout.xml │ │ │ ├── search_layout.xml │ │ │ ├── spinner_list_item.xml │ │ │ ├── top_titlebar_base.xml │ │ │ ├── view_empty_layout.xml │ │ │ └── widget_loading_view.xml │ │ ├── menu │ │ │ └── menu_main.xml │ │ ├── mipmap-xxhdpi │ │ │ ├── btn_back_n.png │ │ │ ├── dialog_loading_img.png │ │ │ ├── fengshan.png │ │ │ ├── ic_launcher.png │ │ │ ├── ic_load_err.png │ │ │ ├── icon_no_net.png │ │ │ ├── leaf.png │ │ │ ├── leaf_kuang.png │ │ │ ├── no_result.png │ │ │ └── share.png │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ └── values │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ └── resources │ │ ├── TestShiro.ini │ │ └── shiro.ini │ └── test │ └── java │ └── com │ └── cg │ └── baseproject │ └── ExampleUnitTest.java ├── build.gradle ├── config.gradle ├── doc ├── GitHubPictures │ ├── Mark.png │ ├── ResolutionShow │ │ ├── 720.png │ │ ├── P9.png │ │ ├── Pixcel2.png │ │ ├── Pixsel_XL.png │ │ ├── S7.png │ │ ├── Tools_Class.jpg │ │ ├── resolution_compare.jpg │ │ └── support_resolution.jpg │ ├── ResolutionTools.png │ ├── RetrofitExceptionHandle.png │ ├── api.png │ ├── compare.png │ ├── dimens.png │ ├── mark_compare.jpg │ ├── mark_layout.png │ ├── project_res.png │ └── 分辨率适配.pxcp ├── Tools │ └── ResolutionAdaption.jar ├── docs │ └── 说明文档.pxcp └── res │ ├── values-w820dp │ └── dimens.xml │ ├── values-xhdpi │ └── dimens.xml │ ├── values-xxhdpi-2220x1080 │ └── dimens.xml │ ├── values-xxxhdpi-2392x1440 │ └── dimens.xml │ ├── values-xxxhdpi-2560x1440 │ └── dimens.xml │ ├── values-xxxhdpi-2712x1440 │ └── dimens.xml │ ├── values-xxxhdpi-2792x1440 │ └── dimens.xml │ ├── values-xxxhdpi │ └── dimens.xml │ └── values │ └── dimens.xml ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /build 4 | 5 | /.idea 6 | /local.properties 7 | 8 | /doc/工具集/res 9 | /doc/Tools/res 10 | 11 | /gradle 12 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/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 | -------------------------------------------------------------------------------- /app/src/androidTest/java/com/cg/baseproject/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.cg.baseproject; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.cg.baseproject", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/activity/FileImageActivity.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.activity; 2 | 3 | import android.os.Bundle; 4 | import com.google.android.material.floatingactionbutton.FloatingActionButton; 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import androidx.appcompat.widget.Toolbar; 7 | import android.view.View; 8 | 9 | import com.cg.baseproject.utils.android.ScreenShotUtils; 10 | import com.google.android.material.snackbar.Snackbar; 11 | import com.ivy.baseproject.test.R; 12 | 13 | public class FileImageActivity extends AppCompatActivity { 14 | 15 | @Override 16 | protected void onCreate(Bundle savedInstanceState) { 17 | super.onCreate(savedInstanceState); 18 | setContentView(R.layout.activity_file_image); 19 | Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 20 | setSupportActionBar(toolbar); 21 | 22 | FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 23 | fab.setOnClickListener(new View.OnClickListener() { 24 | @Override 25 | public void onClick(View view) { 26 | // ScreenShotUtils.getViewBitmapPath(FileImageActivity.this,view); 27 | ScreenShotUtils.getViewBitmapPath(FileImageActivity.this,view,"BaseProject","ScreenShot.png"); 28 | Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG).setAction("Action", null).show(); 29 | } 30 | }); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/activity/FocusTestActivity.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.activity; 2 | 3 | import android.app.Activity; 4 | import android.os.Bundle; 5 | import android.view.View; 6 | 7 | import androidx.annotation.Nullable; 8 | 9 | 10 | /** 11 | * Created by Administrator on 2018/4/8. 12 | */ 13 | 14 | public class FocusTestActivity extends Activity implements View.OnFocusChangeListener{ 15 | 16 | // MainBinding viewDataBinding; 17 | 18 | @Override 19 | protected void onCreate(@Nullable Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | // DataBindingUtil.setContentView(this, R.layout.activity_focus_test); 22 | // viewDataBinding.text1.setOnFocusChangeListener(this); 23 | // viewDataBinding.text2.setOnFocusChangeListener(this); 24 | // viewDataBinding.text3.setOnFocusChangeListener(this); 25 | // viewDataBinding.text4.setOnFocusChangeListener(this); 26 | } 27 | 28 | @Override 29 | public void onFocusChange(View v, boolean hasFocus) { 30 | if(hasFocus){ 31 | // FocusUtils.focusView(viewDataBinding.focusBox,v,13); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/activity/MultiFragmentActivity.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.activity; 2 | 3 | import androidx.appcompat.app.AppCompatActivity; 4 | import android.os.Bundle; 5 | import com.ivy.baseproject.test.R; 6 | 7 | public class MultiFragmentActivity extends AppCompatActivity { 8 | 9 | @Override 10 | protected void onCreate(Bundle savedInstanceState) { 11 | super.onCreate(savedInstanceState); 12 | setContentView(R.layout.activity_multi_fragment); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/activity/NetImageActivity.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.activity; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import android.view.View; 7 | import android.widget.Button; 8 | 9 | import com.ivy.baseproject.test.R; 10 | 11 | import butterknife.BindView; 12 | import butterknife.ButterKnife; 13 | import butterknife.OnClick; 14 | 15 | public class NetImageActivity extends AppCompatActivity { 16 | 17 | @BindView(R.id.btn_movie) 18 | Button mBtnMovie; 19 | @BindView(R.id.btn_award) 20 | Button mBtnAward; 21 | 22 | @Override 23 | protected void onCreate(Bundle savedInstanceState) { 24 | super.onCreate(savedInstanceState); 25 | setContentView(R.layout.activity_netimage); 26 | ButterKnife.bind(this); 27 | } 28 | 29 | @OnClick({R.id.btn_movie, R.id.btn_award}) 30 | public void onViewClicked(View view) { 31 | switch (view.getId()) { 32 | case R.id.btn_movie: 33 | Intent intentMovie = new Intent(NetImageActivity.this, MovieListActivity.class); 34 | startActivity(intentMovie); 35 | break; 36 | case R.id.btn_award: 37 | Intent intentGirl = new Intent(NetImageActivity.this, GirlListActivity.class); 38 | startActivity(intentGirl); 39 | break; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/activity/PermissionActivity.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.activity; 2 | 3 | import android.os.Bundle; 4 | import androidx.annotation.NonNull; 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import androidx.appcompat.widget.Toolbar; 7 | 8 | import com.cg.baseproject.utils.android.EasyPermissionUtils; 9 | import com.cg.baseproject.utils.android.ToastUtils; 10 | import com.ivy.baseproject.test.R; 11 | 12 | import java.util.List; 13 | 14 | import pub.devrel.easypermissions.EasyPermissions; 15 | 16 | public class PermissionActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks{ 17 | private static final String TAG = "PermissionActivity"; 18 | 19 | @Override 20 | protected void onCreate(Bundle savedInstanceState) { 21 | super.onCreate(savedInstanceState); 22 | setContentView(R.layout.activity_permission); 23 | Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 24 | setSupportActionBar(toolbar); 25 | EasyPermissionUtils.requestPermission(this,"必须权限",23,EasyPermissionUtils.perms); 26 | } 27 | 28 | 29 | @Override 30 | public void onPermissionsGranted(int requestCode, @NonNull List perms) { 31 | ToastUtils.showShort("已经授权onPermissionsGranted:"+requestCode); 32 | } 33 | 34 | @Override 35 | public void onPermissionsDenied(int requestCode, @NonNull List perms) { 36 | ToastUtils.showShort("!!!onPermissionsDenied:"+requestCode); 37 | // EasyPermissionUtils.requestPermission(this,"必须权限",23,EasyPermissionUtils.perms); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/activity/ResolutionAdaptionDemoActivity.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.activity; 2 | 3 | import android.os.Bundle; 4 | import com.google.android.material.floatingactionbutton.FloatingActionButton; 5 | import com.google.android.material.snackbar.Snackbar; 6 | import androidx.appcompat.app.AppCompatActivity; 7 | import androidx.appcompat.widget.Toolbar; 8 | import android.view.View; 9 | 10 | import com.ivy.baseproject.test.R; 11 | 12 | 13 | public class ResolutionAdaptionDemoActivity extends AppCompatActivity { 14 | 15 | @Override 16 | protected void onCreate(Bundle savedInstanceState) { 17 | super.onCreate(savedInstanceState); 18 | setContentView(R.layout.activity_resolution_adaption_demo); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/activity/SplashActivity.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.activity; 2 | 3 | import android.content.Intent; 4 | import android.os.Handler; 5 | 6 | import com.cg.baseproject.screenadaptation.base.BaseScreenAdaptActivity; 7 | import com.cg.baseproject.utils.android.ScreenUtils; 8 | import com.ivy.baseproject.test.R; 9 | import com.ivy.baseproject.test.api.AppConfig; 10 | 11 | 12 | public class SplashActivity extends BaseScreenAdaptActivity { 13 | @Override 14 | protected void initScreenAdaption() { 15 | if (ScreenUtils.isPortrait()) { 16 | ScreenUtils.adaptScreen4VerticalSlide(this, AppConfig.widthInPx); 17 | } else { 18 | ScreenUtils.adaptScreen4HorizontalSlide(this, AppConfig.heightInPx); 19 | } 20 | } 21 | 22 | @Override 23 | protected int getActivityLayoutId() { 24 | return R.layout.activity_splash_layout; 25 | } 26 | 27 | @Override 28 | protected void initViews() { 29 | new Handler().postDelayed(new Runnable() { 30 | public void run() { 31 | /* Create an Intent that will start the Main WordPress Activity. */ 32 | startActivity(new Intent(SplashActivity.this,ResolutionAdaptionDemoActivity.class)); 33 | SplashActivity.this.finish(); 34 | } 35 | }, 1000); 36 | } 37 | 38 | @Override 39 | protected void initData() { 40 | 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/adapter/MainInterfaceListAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.adapter; 2 | 3 | import java.util.List; 4 | import com.chad.library.adapter.base.BaseQuickAdapter; 5 | import com.chad.library.adapter.base.BaseViewHolder; 6 | import com.ivy.baseproject.test.R; 7 | import com.ivy.baseproject.test.view.decoration.swtichgridlist.MainInterfaceItem; 8 | 9 | public class MainInterfaceListAdapter extends BaseQuickAdapter { 10 | public MainInterfaceListAdapter(int layoutResId, List data) { 11 | super(layoutResId, data); 12 | } 13 | 14 | @Override 15 | protected void convert(BaseViewHolder baseViewHolder, MainInterfaceItem dataIndex) { 16 | baseViewHolder.setText(R.id.list_item_name, dataIndex.getName()); 17 | baseViewHolder.setBackgroundColor(R.id.list_item_color, dataIndex.getBackgroundColor()); 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/api/AppConfig.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.api; 2 | 3 | /** 4 | * @author 5 | * @version 1.0 6 | * @date 3/5/2018 7 | */ 8 | 9 | public class AppConfig{ 10 | public static final String TAG = "BaseProjectTest"; 11 | public static int widthInPx = 1080; 12 | public static int heightInPx = 1920; 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/data/MainInterfaceItem.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.data; 2 | 3 | public class MainInterfaceItem { 4 | 5 | private String name; 6 | private String method; 7 | private int backgroundColor; 8 | 9 | public int getBackgroundColor() { 10 | return backgroundColor; 11 | } 12 | 13 | public void setBackgroundColor(int backgroundColor) { 14 | this.backgroundColor = backgroundColor; 15 | } 16 | 17 | 18 | public String getMethod() { 19 | return method; 20 | } 21 | 22 | public void setMethod(String method) { 23 | this.method = method; 24 | } 25 | 26 | 27 | public String getName() { 28 | return name; 29 | } 30 | 31 | public void setName(String name) { 32 | this.name = name; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/data/bean/Bean.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.data.bean; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | /** 6 | * @author 7 | * @version 1.0 8 | * @date 2018/8/3 9 | */ 10 | public class Bean { 11 | /** 12 | * data : {"sessionId:":"D594D7D4FB2FBA0FF6C0CC073C48CC96"} 13 | * message : 登录成功 14 | * code : 200 15 | */ 16 | 17 | private DataBean data; 18 | private String message; 19 | private int code; 20 | 21 | public DataBean getData() { 22 | return data; 23 | } 24 | 25 | public void setData(DataBean data) { 26 | this.data = data; 27 | } 28 | 29 | public String getMessage() { 30 | return message; 31 | } 32 | 33 | public void setMessage(String message) { 34 | this.message = message; 35 | } 36 | 37 | public int getCode() { 38 | return code; 39 | } 40 | 41 | public void setCode(int code) { 42 | this.code = code; 43 | } 44 | 45 | public static class DataBean { 46 | @SerializedName("sessionId:") 47 | private String _$SessionId77; // FIXME check this code 48 | 49 | public String get_$SessionId77() { 50 | return _$SessionId77; 51 | } 52 | 53 | public void set_$SessionId77(String _$SessionId77) { 54 | this._$SessionId77 = _$SessionId77; 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/data/bean/response/AirForecast.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.data.bean.response; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @author 7 | * @version 1.0 8 | * @date 2018/7/27 9 | */ 10 | public class AirForecast { 11 | /** 12 | * code : 200 13 | * msg : OK 14 | * data : {"dates":["7-11","7-12","7-13","7-14","7-15"],"datas":["20","30","40","60","30"]} 15 | */ 16 | 17 | private int code; 18 | private String msg; 19 | private DataBean data; 20 | 21 | public int getCode() { 22 | return code; 23 | } 24 | 25 | public void setCode(int code) { 26 | this.code = code; 27 | } 28 | 29 | public String getMsg() { 30 | return msg; 31 | } 32 | 33 | public void setMsg(String msg) { 34 | this.msg = msg; 35 | } 36 | 37 | public DataBean getData() { 38 | return data; 39 | } 40 | 41 | public void setData(DataBean data) { 42 | this.data = data; 43 | } 44 | 45 | public static class DataBean { 46 | private List dates; 47 | private List datas; 48 | 49 | public List getDates() { 50 | return dates; 51 | } 52 | 53 | public void setDates(List dates) { 54 | this.dates = dates; 55 | } 56 | 57 | public List getDatas() { 58 | return datas; 59 | } 60 | 61 | public void setDatas(List datas) { 62 | this.datas = datas; 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/data/bean/response/LoginBean.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.data.bean.response; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | /** 6 | * @author 7 | * @version 1.0 8 | * @date 2018/8/3 9 | */ 10 | public class LoginBean { 11 | /** 12 | * data : {"sessionId:":"D594D7D4FB2FBA0FF6C0CC073C48CC96"} 13 | * message : 登录成功 14 | * code : 200 15 | */ 16 | 17 | private DataBean data; 18 | private String message; 19 | private int code; 20 | 21 | public DataBean getData() { 22 | return data; 23 | } 24 | 25 | public void setData(DataBean data) { 26 | this.data = data; 27 | } 28 | 29 | public String getMessage() { 30 | return message; 31 | } 32 | 33 | public void setMessage(String message) { 34 | this.message = message; 35 | } 36 | 37 | public int getCode() { 38 | return code; 39 | } 40 | 41 | public void setCode(int code) { 42 | this.code = code; 43 | } 44 | 45 | public static class DataBean { 46 | @SerializedName("sessionId:") 47 | private String _$SessionId77; // FIXME check this code 48 | 49 | public String get_$SessionId77() { 50 | return _$SessionId77; 51 | } 52 | 53 | public void set_$SessionId77(String _$SessionId77) { 54 | this._$SessionId77 = _$SessionId77; 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/deprecated/RequestBusiness.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.deprecated; 2 | 3 | import com.cg.baseproject.request.retrofit.BaseRequestBusiness; 4 | import com.cg.baseproject.request.retrofit.RetrofitRequestManager; 5 | import com.ivy.baseproject.test.api.RequestApiInterface; 6 | 7 | /** 8 | * @author sam 9 | * @version 1.0 10 | * @date 2018/3/20 11 | */ 12 | 13 | public class RequestBusiness extends BaseRequestBusiness { 14 | private RequestApiInterface requesteApiInterface; 15 | private static RequestBusiness mBaseRequestBusiness; 16 | 17 | /** 18 | * 单例模式,得到requestbusiness的实例 19 | * @return 20 | */ 21 | public static synchronized RequestBusiness getInstance() { 22 | if (mBaseRequestBusiness == null) { 23 | mBaseRequestBusiness = new RequestBusiness(); 24 | } 25 | return mBaseRequestBusiness; 26 | } 27 | 28 | /** 29 | * 得到接口API,调用相应的接口 30 | * @return 31 | */ 32 | public RequestApiInterface getAPI() { 33 | //构建Retrofit 34 | if (requesteApiInterface == null) { 35 | requesteApiInterface = 36 | RetrofitRequestManager.getInstance().getRetrofit().create(RequestApiInterface.class); 37 | } 38 | return requesteApiInterface; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/sample/MainActivityFragment.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.sample; 2 | 3 | import androidx.fragment.app.Fragment; 4 | import android.os.Bundle; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | import com.ivy.baseproject.test.R; 10 | 11 | /** 12 | * A placeholder fragment containing a simple view. 13 | */ 14 | public class MainActivityFragment extends Fragment { 15 | 16 | @Override 17 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 18 | return inflater.inflate(R.layout.activity_sample_fragment, container, false); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/sample/SampleFragmentActivity.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.sample; 2 | 3 | import android.os.Bundle; 4 | import androidx.appcompat.app.AppCompatActivity; 5 | import android.view.View; 6 | 7 | import com.cg.baseproject.base.BaseActivity; 8 | import com.cg.baseproject.base.BaseSupportActivity; 9 | import com.cg.baseproject.base.BaseSupportFragment; 10 | import com.cg.baseproject.base.BaseTempActivity; 11 | import com.ivy.baseproject.test.R; 12 | 13 | import butterknife.ButterKnife; 14 | 15 | public class SampleFragmentActivity extends BaseSupportActivity implements BaseSupportFragment.OnBackToFirstListener{ 16 | 17 | @Override 18 | protected int getActivityLayoutId() { 19 | return R.layout.activity_samplefragment_main; 20 | } 21 | 22 | @Override 23 | protected void initViews() { 24 | 25 | } 26 | 27 | @Override 28 | protected void registerListener() { 29 | 30 | } 31 | 32 | @Override 33 | protected void initData() { 34 | 35 | } 36 | 37 | @Override 38 | protected int getFragmentContentId() { 39 | return 0; 40 | } 41 | 42 | @Override 43 | protected void setScreenManager() { 44 | 45 | } 46 | 47 | 48 | @Override 49 | public void onBackToFirstFragment() { 50 | 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/view/decoration/MovieDecoration.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.view.decoration; 2 | 3 | import android.graphics.Rect; 4 | import androidx.recyclerview.widget.RecyclerView; 5 | import android.view.View; 6 | 7 | /** 8 | * @author 9 | * @version 1.0 10 | * @date 2018/3/18 11 | */ 12 | 13 | public class MovieDecoration extends RecyclerView.ItemDecoration{ 14 | @Override 15 | public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { 16 | outRect.set(0,0,0,20); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/view/decoration/swtichgridlist/GridRecyclerView.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.view.decoration.swtichgridlist; 2 | 3 | import android.content.Context; 4 | import androidx.recyclerview.widget.GridLayoutManager; 5 | import androidx.recyclerview.widget.RecyclerView; 6 | import android.util.AttributeSet; 7 | 8 | public class GridRecyclerView extends RecyclerView { 9 | 10 | public GridRecyclerView(Context context) { 11 | super(context); 12 | init(); 13 | } 14 | 15 | public GridRecyclerView(Context context, AttributeSet attrs) { 16 | super(context, attrs); 17 | init(); 18 | } 19 | 20 | public GridRecyclerView(Context context, AttributeSet attrs, int defStyle) { 21 | super(context, attrs, defStyle); 22 | init(); 23 | } 24 | 25 | private void init() { 26 | int spanCount = 2; 27 | GridLayoutManager manager = new GridLayoutManager(getContext(), spanCount); 28 | setLayoutManager(manager); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/view/decoration/swtichgridlist/MainInterfaceItem.java: -------------------------------------------------------------------------------- 1 | package com.ivy.baseproject.test.view.decoration.swtichgridlist; 2 | 3 | public class MainInterfaceItem { 4 | 5 | private String name; 6 | private String method; 7 | private int backgroundColor; 8 | 9 | public int getBackgroundColor() { 10 | return backgroundColor; 11 | } 12 | 13 | public void setBackgroundColor(int backgroundColor) { 14 | this.backgroundColor = backgroundColor; 15 | } 16 | 17 | 18 | public String getMethod() { 19 | return method; 20 | } 21 | 22 | public void setMethod(String method) { 23 | this.method = method; 24 | } 25 | 26 | 27 | public String getName() { 28 | return name; 29 | } 30 | 31 | public void setName(String name) { 32 | this.name = name; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/ivy/baseproject/test/view/decoration/swtichgridlist/ScrollState.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Soichiro Kashima 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.ivy.baseproject.test.view.decoration.swtichgridlist; 18 | 19 | /** 20 | * Constants that indicates the scroll state of the Scrollable widgets. 21 | */ 22 | public enum ScrollState { 23 | /** 24 | * Widget is stopped. 25 | * This state does not always mean that this widget have never been scrolled. 26 | */ 27 | STOP, 28 | 29 | /** 30 | * Widget is scrolled up by swiping it down. 31 | */ 32 | UP, 33 | 34 | /** 35 | * Widget is scrolled down by swiping it up. 36 | */ 37 | DOWN, 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/res/anim/grid_layout_animation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_in_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/artboard_1xxxhdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/drawable-xxxhdpi/artboard_1xxxhdpi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/focused.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/drawable/focused.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add_black_26dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_crop_free_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_index_rank_bg.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/line_h_gray.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/line_v_grey.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_spinner_radius.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/vbtn_arrow_back.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/vbtn_arrow_forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/vbtn_arrow_more.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/vbtn_titlebar_me.xml: -------------------------------------------------------------------------------- 1 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/vbtn_titlebar_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/vic_github_cat1.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/vic_github_cat2.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/vic_github_cat3.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/vic_github_grey2.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/vic_h_line.xml: -------------------------------------------------------------------------------- 1 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_file_image.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_fragmentmain.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_girl_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 15 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_movie_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_multi_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_permission.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_resolution_adaption_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_sample.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_sample_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_samplefragment_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_screen_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_splash_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_ui_widget.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 22 | 23 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/bad_network.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/cardview_constraint.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/cardviewfix_constraint.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 15 | 23 | 24 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/constraint_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_file_image.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_girl_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_movie_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_permission.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_resolution_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_sample.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/frament_sample_content.xml: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/grid_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 16 | 17 | 22 | 23 | 27 | 28 | 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/res/layout/home_title.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/recycleview_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/samplefragment_content_main.xml: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/temp.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/test.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/test1.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/top_titlebar_base.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/github_cat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xhdpi/github_cat.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/qr_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xhdpi/qr_code.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/card_cover_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/card_cover_a.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/card_cover_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/card_cover_b.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/card_cover_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/card_cover_c.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/card_cover_d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/card_cover_d.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/card_cover_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/card_cover_e.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/card_cover_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/card_cover_f.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/github_cat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/github_cat.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_action_switch_grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/ic_action_switch_grid.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_action_switch_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/ic_action_switch_list.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/logo.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/qr_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/qr_code.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ren_nor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/ren_nor.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/scrollview_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/scrollview_bottom.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/topbar_share_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxhdpi/topbar_share_normal.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/github_cat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxxhdpi/github_cat.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/qr_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly803/BaseProject/9fbcf16953e1098c78f33bd818cbe7624235489a/app/src/main/res/mipmap-xxxhdpi/qr_code.png -------------------------------------------------------------------------------- /app/src/main/res/values-nodpi-1280x672/dimen_px.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 22.0px 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-nodpi-1280x720/dimen_px.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 22.0px 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-nodpi-1920x1008/dimen_px.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32.0px 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-nodpi-1920x1080/dimen_px.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32.0px 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-nodpi-2560x1440/dimen_px.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 42.0px 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-nodpi-3840x2160/dimen_px.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 64.0px 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | BaseProject库测试工程 3 | NetImageActivity 4 | 电影列表 5 | 美女列表 6 | MovieListActivity 7 | GirlListActivity 8 | ResolutionAdaptionDemoActivity 9 | ScreenInfoActivity 10 | ResolutionTestActivity 11 | SampleActivity 12 | app 13 | PermissionActivity 14 | FileImageActivity 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 17 | 18 | 19 |