├── .codebeatignore ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ ├── question.md │ └── translation.md └── stale.yml ├── .gitignore ├── .travis.yml ├── Android.mk ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── contemporary │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── yeriomin │ │ │ └── yalpstore │ │ │ ├── BaseActivity.java │ │ │ ├── OnAppClickListener.java │ │ │ ├── PreferenceActivity.java │ │ │ ├── SearchActivity.java │ │ │ ├── ThemeManager.java │ │ │ ├── fragment │ │ │ ├── details │ │ │ │ └── Background.java │ │ │ └── preference │ │ │ │ └── PreferenceFragment.java │ │ │ ├── task │ │ │ ├── LoadCircularImageTask.java │ │ │ └── playstore │ │ │ │ ├── NavHeaderUpdateTask.java │ │ │ │ └── SearchSuggestionTask.java │ │ │ └── view │ │ │ ├── DialogWrapper.java │ │ │ ├── InstalledAppsMainButtonAdapter.java │ │ │ └── UpdatableAppsButtonAdapter.java │ └── res │ │ ├── drawable-v21 │ │ └── ic_menu.xml │ │ ├── drawable │ │ ├── button_border.xml │ │ └── ic_menu.xml │ │ ├── layout │ │ ├── applist_main_button.xml │ │ ├── base_activity_layout.xml │ │ ├── details_activity_layout.xml │ │ ├── details_beta.xml │ │ ├── details_button_bar.xml │ │ ├── details_content_layout.xml │ │ ├── details_permissions.xml │ │ ├── details_reviews.xml │ │ ├── details_screenshots.xml │ │ ├── nav_header.xml │ │ ├── preferences_layout.xml │ │ ├── search_view_layout.xml │ │ └── suggestion_list_item.xml │ │ ├── menu │ │ ├── menu_accounts.xml │ │ ├── menu_bar.xml │ │ └── menu_drawer.xml │ │ ├── values-v21 │ │ └── style.xml │ │ └── values │ │ ├── colors.xml │ │ └── style.xml │ ├── legacy │ ├── AndroidManifest.xml │ ├── java │ │ ├── android │ │ │ ├── preference │ │ │ │ └── MultiSelectListPreference.java │ │ │ ├── support │ │ │ │ └── v4 │ │ │ │ │ └── content │ │ │ │ │ └── FileProvider.java │ │ │ └── util │ │ │ │ └── LruCache.java │ │ └── com │ │ │ └── github │ │ │ └── yeriomin │ │ │ └── yalpstore │ │ │ ├── BaseActivity.java │ │ │ ├── OnAppClickListener.java │ │ │ ├── PreferenceActivity.java │ │ │ ├── SearchActivity.java │ │ │ ├── ThemeManager.java │ │ │ ├── fragment │ │ │ └── details │ │ │ │ └── Background.java │ │ │ └── view │ │ │ ├── DialogWrapper.java │ │ │ ├── InstalledAppsMainButtonAdapter.java │ │ │ └── UpdatableAppsButtonAdapter.java │ └── res │ │ ├── drawable-v21 │ │ └── ic_accounts.xml │ │ ├── drawable │ │ └── ic_accounts.png │ │ ├── layout │ │ ├── applist_main_button.xml │ │ ├── details_activity_layout.xml │ │ ├── details_beta.xml │ │ ├── details_button_bar.xml │ │ ├── details_content_layout.xml │ │ ├── details_permissions.xml │ │ ├── details_reviews.xml │ │ └── details_screenshots.xml │ │ ├── menu │ │ └── menu_bar.xml │ │ ├── values │ │ └── donottranslate.xml │ │ └── xml │ │ └── searchable.xml │ └── main │ ├── AndroidManifest.xml │ ├── java │ ├── android │ │ └── content │ │ │ └── pm │ │ │ └── IPackageInstallObserver.java │ └── com │ │ └── github │ │ └── yeriomin │ │ ├── util │ │ └── StringExtractor.java │ │ └── yalpstore │ │ ├── AboutActivity.java │ │ ├── AppListActivity.java │ │ ├── AppListInstallReceiver.java │ │ ├── AppListIterator.java │ │ ├── BitmapManager.java │ │ ├── BlackWhiteListManager.java │ │ ├── BootReceiver.java │ │ ├── BugReportActivity.java │ │ ├── CategoryAppsActivity.java │ │ ├── CategoryListActivity.java │ │ ├── CategoryManager.java │ │ ├── ClusterActivity.java │ │ ├── ConnectivityChangeReceiver.java │ │ ├── ContextUtil.java │ │ ├── CredentialsEmptyException.java │ │ ├── DebugHttpClientAdapter.java │ │ ├── DetailsActivity.java │ │ ├── DetailsInstallReceiver.java │ │ ├── DeveloperActivity.java │ │ ├── DeviceInfoActivity.java │ │ ├── DirectDownloadActivity.java │ │ ├── EglExtensionRetriever.java │ │ ├── EndlessScrollActivity.java │ │ ├── FirstLaunchChecker.java │ │ ├── FullscreenImageActivity.java │ │ ├── FullscreenImageAdapter.java │ │ ├── GlobalInstallReceiver.java │ │ ├── HistoryActivity.java │ │ ├── ImageAdapter.java │ │ ├── InstalledApkCopier.java │ │ ├── InstalledAppsActivity.java │ │ ├── ListActivity.java │ │ ├── ListAdapter.java │ │ ├── ManualDownloadActivity.java │ │ ├── NativeDeviceInfoProvider.java │ │ ├── NativeGsfVersionProvider.java │ │ ├── NativeHttpClientAdapter.java │ │ ├── NetworkUtil.java │ │ ├── NotPurchasedException.java │ │ ├── OnListPreferenceChangeListener.java │ │ ├── PackageSpecificReceiver.java │ │ ├── Paths.java │ │ ├── PermissionsComparator.java │ │ ├── PlayStoreApiAuthenticator.java │ │ ├── PreferenceUtil.java │ │ ├── ReviewIterator.java │ │ ├── ReviewRetrieverIterator.java │ │ ├── ReviewStorageIterator.java │ │ ├── ScrollEdgeListener.java │ │ ├── SearchActivityAbstract.java │ │ ├── SharedPreferencesCachedSet.java │ │ ├── SharedPreferencesTranslator.java │ │ ├── SpoofDeviceManager.java │ │ ├── SqliteHelper.java │ │ ├── ThemeManagerAbstract.java │ │ ├── TokenDispenserMirrors.java │ │ ├── UpdatableAppsActivity.java │ │ ├── UpdateAllReceiver.java │ │ ├── UpdateChecker.java │ │ ├── Util.java │ │ ├── VersionIgnoreManager.java │ │ ├── WishlistActivity.java │ │ ├── YalpStoreActivity.java │ │ ├── YalpStoreApplication.java │ │ ├── YalpStorePermissionManager.java │ │ ├── YalpStoreSuggestionProvider.java │ │ ├── YalpStoreUncaughtExceptionHandler.java │ │ ├── bugreport │ │ ├── BugReportBuilder.java │ │ ├── BugReportDeviceInfoBuilder.java │ │ ├── BugReportLogBuilder.java │ │ ├── BugReportMessageBuilder.java │ │ ├── BugReportPreferencesBuilder.java │ │ ├── BugReportPropertiesBuilder.java │ │ ├── BugReportSender.java │ │ ├── BugReportSenderEmail.java │ │ ├── BugReportSenderFtp.java │ │ └── BugReportService.java │ │ ├── delta │ │ ├── BSDiff.java │ │ ├── GDiff.java │ │ ├── Patcher.java │ │ └── PatcherFactory.java │ │ ├── download │ │ ├── AppListProgressListener.java │ │ ├── DetailsProgressListener.java │ │ ├── DownloadManager.java │ │ ├── ProgressListenerFactory.java │ │ ├── ProgressNotificationListener.java │ │ ├── Request.java │ │ ├── RequestApk.java │ │ ├── RequestBuilder.java │ │ ├── RequestDelta.java │ │ ├── RequestObb.java │ │ ├── RequestSplit.java │ │ └── State.java │ │ ├── fragment │ │ ├── Abstract.java │ │ ├── Button.java │ │ ├── ButtonCancel.java │ │ ├── ButtonDownload.java │ │ ├── ButtonInstall.java │ │ ├── ButtonRun.java │ │ ├── ButtonUninstall.java │ │ ├── DownloadMenu.java │ │ ├── FilterMenu.java │ │ ├── details │ │ │ ├── AllFragments.java │ │ │ ├── AppLists.java │ │ │ ├── BackToPlayStore.java │ │ │ ├── Beta.java │ │ │ ├── Exodus.java │ │ │ ├── Fdroid.java │ │ │ ├── GeneralDetails.java │ │ │ ├── GoogleDependency.java │ │ │ ├── InstantAppLink.java │ │ │ ├── Permissions.java │ │ │ ├── Review.java │ │ │ ├── Screenshot.java │ │ │ ├── Share.java │ │ │ ├── SystemAppPage.java │ │ │ ├── Video.java │ │ │ └── Wishlist.java │ │ └── preference │ │ │ ├── Abstract.java │ │ │ ├── AllPreferences.java │ │ │ ├── Blacklist.java │ │ │ ├── CheckUpdates.java │ │ │ ├── DownloadDirectory.java │ │ │ ├── InstallationMethod.java │ │ │ ├── InternalStorage.java │ │ │ ├── List.java │ │ │ ├── OnInstallationMethodChangeListener.java │ │ │ ├── Proxy.java │ │ │ └── Theme.java │ │ ├── install │ │ ├── ApkSignatureVerifier.java │ │ ├── InstallationState.java │ │ ├── InstallerAbstract.java │ │ ├── InstallerBackground.java │ │ ├── InstallerDefault.java │ │ ├── InstallerFactory.java │ │ ├── InstallerPrivileged.java │ │ ├── InstallerPrivilegedReflection.java │ │ ├── InstallerPrivilegedSession.java │ │ └── InstallerRoot.java │ │ ├── model │ │ ├── App.java │ │ ├── AppBuilder.java │ │ ├── Dao.java │ │ ├── Event.java │ │ ├── EventDao.java │ │ ├── Filter.java │ │ ├── ImageSource.java │ │ ├── LoginInfo.java │ │ ├── LoginInfoDao.java │ │ ├── Rating.java │ │ ├── Review.java │ │ └── ReviewBuilder.java │ │ ├── notification │ │ ├── CancelDownloadReceiver.java │ │ ├── IgnoreUpdatesReceiver.java │ │ ├── NotificationBuilder.java │ │ ├── NotificationBuilderHoneycomb.java │ │ ├── NotificationBuilderIcs.java │ │ ├── NotificationBuilderJellybean.java │ │ ├── NotificationBuilderKitkatWatch.java │ │ ├── NotificationBuilderLegacy.java │ │ ├── NotificationBuilderO.java │ │ ├── NotificationManagerWrapper.java │ │ └── SignatureCheckReceiver.java │ │ ├── selfupdate │ │ ├── Signature.java │ │ ├── Updater.java │ │ ├── UpdaterFactory.java │ │ ├── UpdaterFdroid.java │ │ └── UpdaterGithub.java │ │ ├── task │ │ ├── AppListValidityCheckTask.java │ │ ├── BitmapCacheCleanupTask.java │ │ ├── CheckShellTask.java │ │ ├── CheckSuTask.java │ │ ├── CleanupTask.java │ │ ├── ConvertToNormalTask.java │ │ ├── ConvertToSystemTask.java │ │ ├── CopyApkTask.java │ │ ├── DownloadTask.java │ │ ├── ExodusCsrfTask.java │ │ ├── ExodusSearchTask.java │ │ ├── ExodusSubmitTask.java │ │ ├── ExodusTask.java │ │ ├── FdroidListTask.java │ │ ├── HistoryTask.java │ │ ├── HttpTask.java │ │ ├── InstallTask.java │ │ ├── InstalledAppsTask.java │ │ ├── LoadImageTask.java │ │ ├── LowCpuIntensityTask.java │ │ ├── OldApkCleanupTask.java │ │ ├── PatchTask.java │ │ ├── RebootTask.java │ │ ├── SystemRemountTask.java │ │ ├── TaskWithProgress.java │ │ ├── UninstallSystemAppTask.java │ │ └── playstore │ │ │ ├── AppProvidedCredentialsTask.java │ │ │ ├── BackgroundCategoryTask.java │ │ │ ├── BackgroundPurchaseTask.java │ │ │ ├── BackgroundUpdatableAppsTask.java │ │ │ ├── BetaToggleTask.java │ │ │ ├── CategoryAppsTask.java │ │ │ ├── CategoryListTask.java │ │ │ ├── CategoryTask.java │ │ │ ├── ChangelogTask.java │ │ │ ├── CheckCredentialsTask.java │ │ │ ├── CheckLoginTask.java │ │ │ ├── CloneableTask.java │ │ │ ├── ClusterTask.java │ │ │ ├── DeliveryDataTask.java │ │ │ ├── DependencyTranslationTask.java │ │ │ ├── DetailsCategoryTask.java │ │ │ ├── DetailsTask.java │ │ │ ├── DownloadLinkTask.java │ │ │ ├── EndlessScrollTask.java │ │ │ ├── FlagTask.java │ │ │ ├── ForegroundUpdatableAppsTask.java │ │ │ ├── LoginTask.java │ │ │ ├── PlayStorePayloadTask.java │ │ │ ├── PlayStoreTask.java │ │ │ ├── PurchaseCheckTask.java │ │ │ ├── PurchaseTask.java │ │ │ ├── RefreshTokenTask.java │ │ │ ├── RemoteAppListTask.java │ │ │ ├── ReviewAddTask.java │ │ │ ├── ReviewDeleteTask.java │ │ │ ├── ReviewLoadTask.java │ │ │ ├── SearchTask.java │ │ │ ├── UpdatableAppsTask.java │ │ │ ├── UserProfileTask.java │ │ │ ├── WishlistToggleTask.java │ │ │ └── WishlistUpdateTask.java │ │ ├── view │ │ ├── AppBadge.java │ │ ├── ButtonAdapter.java │ │ ├── CredentialsDialogBuilder.java │ │ ├── DialogWrapperAbstract.java │ │ ├── FlagDialogBuilder.java │ │ ├── HistoryItem.java │ │ ├── HttpTaskOnClickListener.java │ │ ├── InstalledAppBadge.java │ │ ├── InstalledAppsMainButtonAdapterAbstract.java │ │ ├── IntentOnClickListener.java │ │ ├── ListItem.java │ │ ├── LoginDialogBuilder.java │ │ ├── ProgressIndicator.java │ │ ├── PurchaseDialogBuilder.java │ │ ├── SearchResultAppBadge.java │ │ ├── SystemRemountDialogBuilder.java │ │ ├── UpdatableAppBadge.java │ │ ├── UpdatableAppsButtonAdapterAbstract.java │ │ ├── UriOnClickListener.java │ │ └── UserReviewDialogBuilder.java │ │ └── widget │ │ ├── Badge.java │ │ ├── ExpansionPanel.java │ │ └── PermissionGroup.java │ └── res │ ├── drawable-anydpi-v21 │ ├── ic_about.xml │ ├── ic_add.xml │ ├── ic_apps.xml │ ├── ic_arrow_drop_down.xml │ ├── ic_bug_report.xml │ ├── ic_cancel.xml │ ├── ic_categories.xml │ ├── ic_check.xml │ ├── ic_chevron_left.xml │ ├── ic_chevron_right.xml │ ├── ic_circle.xml │ ├── ic_delete.xml │ ├── ic_download.xml │ ├── ic_edit.xml │ ├── ic_events.xml │ ├── ic_exodus.xml │ ├── ic_expand_less.xml │ ├── ic_expand_more.xml │ ├── ic_fdroid.xml │ ├── ic_filter.xml │ ├── ic_google_play.xml │ ├── ic_instant_app.xml │ ├── ic_link.xml │ ├── ic_logout.xml │ ├── ic_more.xml │ ├── ic_more_vert.xml │ ├── ic_notification.xml │ ├── ic_permission_android.xml │ ├── ic_permission_google.xml │ ├── ic_permission_unknown.xml │ ├── ic_placeholder.xml │ ├── ic_refresh.xml │ ├── ic_search.xml │ ├── ic_settings.xml │ ├── ic_share.xml │ ├── ic_star.xml │ ├── ic_storage.xml │ ├── ic_video.xml │ ├── ic_visibility_off.xml │ ├── ic_visibility_on.xml │ ├── ic_wishlist_plus.xml │ └── ic_wishlist_tick.xml │ ├── drawable │ ├── ic_about.png │ ├── ic_add.png │ ├── ic_apps.png │ ├── ic_arrow_drop_down.png │ ├── ic_bug_report.png │ ├── ic_cancel.png │ ├── ic_categories.png │ ├── ic_check.png │ ├── ic_chevron_left.png │ ├── ic_chevron_right.png │ ├── ic_circle.png │ ├── ic_delete.png │ ├── ic_download.png │ ├── ic_download_animation.xml │ ├── ic_download_animation_1.png │ ├── ic_download_animation_2.png │ ├── ic_download_animation_3.png │ ├── ic_download_animation_4.png │ ├── ic_download_animation_5.png │ ├── ic_download_animation_6.png │ ├── ic_edit.png │ ├── ic_events.png │ ├── ic_exodus.png │ ├── ic_expand_less.png │ ├── ic_expand_more.png │ ├── ic_fdroid.png │ ├── ic_filter.png │ ├── ic_google_play.png │ ├── ic_instant_app.png │ ├── ic_launcher_foreground.xml │ ├── ic_link.png │ ├── ic_logout.png │ ├── ic_more.png │ ├── ic_more_vert.png │ ├── ic_notification.png │ ├── ic_permission_android.png │ ├── ic_permission_google.png │ ├── ic_permission_unknown.png │ ├── ic_placeholder.png │ ├── ic_refresh.png │ ├── ic_search.png │ ├── ic_settings.png │ ├── ic_share.png │ ├── ic_star.png │ ├── ic_storage.png │ ├── ic_video.png │ ├── ic_visibility_off.png │ ├── ic_visibility_on.png │ ├── ic_wishlist_plus.png │ └── ic_wishlist_tick.png │ ├── layout-v21 │ ├── permission_group_widget_layout.xml │ └── two_line_list_item_with_icon.xml │ ├── layout │ ├── about_activity_layout.xml │ ├── applist_activity_layout.xml │ ├── badge_widget_layout.xml │ ├── bugreport_activity_layout.xml │ ├── details_general.xml │ ├── deviceinfo_activity_layout.xml │ ├── event_list_item.xml │ ├── expansion_panel_widget_layout.xml │ ├── fullscreen_image_activity_layout.xml │ ├── list_activity_layout.xml │ ├── login_dialog_layout.xml │ ├── manual_download_activity_layout.xml │ ├── permission_group_widget_layout.xml │ ├── review_dialog_layout.xml │ ├── review_list_item.xml │ └── two_line_list_item_with_icon.xml │ ├── menu │ └── menu_download.xml │ ├── mipmap-anydpi-v26 │ └── ic_launcher.xml │ ├── mipmap-hdpi-v24 │ └── ic_launcher.png │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi-v24 │ └── ic_launcher.png │ ├── mipmap-xhdpi-v24 │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi-v24 │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── mipmap-xxxhdpi-v24 │ └── ic_launcher.png │ ├── mipmap-xxxhdpi │ └── ic_launcher.png │ ├── mipmap │ └── ic_launcher.png │ ├── values-ar │ └── strings.xml │ ├── values-ast │ └── strings.xml │ ├── values-bg │ └── strings.xml │ ├── values-cs │ └── strings.xml │ ├── values-de │ └── strings.xml │ ├── values-el │ └── strings.xml │ ├── values-es │ └── strings.xml │ ├── values-eu │ └── strings.xml │ ├── values-fr-rBE │ └── strings.xml │ ├── values-fr │ └── strings.xml │ ├── values-in │ └── strings.xml │ ├── values-it │ └── strings.xml │ ├── values-ja │ └── strings.xml │ ├── values-kk │ └── strings.xml │ ├── values-ko │ └── strings.xml │ ├── values-nl │ └── strings.xml │ ├── values-pl │ └── strings.xml │ ├── values-pt-rBR │ └── strings.xml │ ├── values-pt │ └── strings.xml │ ├── values-ru │ └── strings.xml │ ├── values-sk │ └── strings.xml │ ├── values-uk │ └── strings.xml │ ├── values-zh-rTW │ └── strings.xml │ ├── values-zh │ └── strings.xml │ ├── values │ ├── array.xml │ ├── attrs.xml │ ├── donottranslate.xml │ ├── ic_launcher_background.xml │ └── strings.xml │ └── xml │ ├── paths.xml │ └── settings.xml ├── build.gradle ├── drawable-source ├── ic_bug_report.svg ├── ic_categories.svg ├── ic_chevron_left.svg ├── ic_chevron_right.svg ├── ic_circle.svg ├── ic_delete.svg ├── ic_download.svg ├── ic_edit.svg ├── ic_events.svg ├── ic_exodus.svg ├── ic_expand_less.svg ├── ic_expand_more.svg ├── ic_fdroid.svg ├── ic_google_play.svg ├── ic_ignore.svg ├── ic_instant_app.svg ├── ic_launcher.svg ├── ic_launcher_borderless.svg ├── ic_logout.svg ├── ic_notification.svg ├── ic_notification_round.svg ├── ic_notification_square.svg ├── ic_permission_android.svg ├── ic_permission_google.svg ├── ic_permission_unknown.svg ├── ic_placeholder.svg ├── ic_refresh.svg ├── ic_search.svg ├── ic_settings.svg ├── ic_star.svg ├── ic_storage.svg ├── ic_video.svg ├── ic_wishlist_plus.svg └── ic_wishlist_tick.svg ├── fastlane └── metadata │ └── android │ └── en-US │ └── phoneScreenshots │ ├── details.png │ ├── search.png │ └── updates.png ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle ├── yalp-store-ota-zip ├── 81-YalpStore.sh ├── META-INF │ └── com │ │ └── google │ │ └── android │ │ └── update-binary └── privapp-permissions-YalpStore.xml └── yeriomin-keystore.jks.enc /.codebeatignore: -------------------------------------------------------------------------------- 1 | /app/src/legacy/java/android/support/v4/content/FileProvider.java 2 | /app/src/legacy/java/android/util/LruCache.java 3 | /app/src/legacy/java/android/preference/MultiSelectListPreference.java 4 | /app/src/main/java/com/github/yeriomin/yalpstore/EglExtensionRetriever.java 5 | /app/src/main/java/com/github/yeriomin/yalpstore/model/App.java 6 | /app/src/main/java/com/github/yeriomin/yalpstore/model/LoginInfo.java 7 | /app/src/main/java/com/github/yeriomin/yalpstore/model/AppBuilder.java 8 | /app/src/main/java/com/github/yeriomin/yalpstore/model/Filter.java 9 | /app/src/main/java/com/github/yeriomin/yalpstore/model/Review.java 10 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: There is a problem with Yalp Store 4 | 5 | --- 6 | 7 | **Before creating an issue** 8 | 1. Make sure you are running the latest version of Yalp Store. Check [here](https://github.com/yeriomin/YalpStore/releases/latest). 9 | 2. Search for similar issues [here](https://github.com/yeriomin/YalpStore/issues?q=is%3Aissue). 10 | 3. Send developer a bug report using Yalp's built-in crash tool. Please identify yourself - the reports are anonymous by default. 11 | 4. Number 3 is important. Please do it. It helps a lot. 12 | 5. Use the following template to write the text of your issue. 13 | 14 | **Expected behavior** 15 | Tell us what should happen 16 | 17 | **Actual behavior** 18 | Tell us what happens instead 19 | 20 | **Steps to reproduce** 21 | 1. 22 | 2. 23 | 3. 24 | 25 | **Your setup** 26 | Device model, android falvor, Yalp Store version 27 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem? Please describe.** 8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 9 | 10 | **Describe the solution you'd like** 11 | A clear and concise description of what you want to happen. 12 | 13 | **Describe alternatives you've considered** 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Question 3 | about: You have something to ask 4 | 5 | --- 6 | 7 | If you have a question or want to discuss something which is not a bug or a feature request, please use [the gitter chat room](https://gitter.im/YalpStore/Lobby). 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/translation.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Translation 3 | about: You are contributing a translation 4 | 5 | --- 6 | 7 | I appreciate your effort! 8 | 9 | Please use POEditor to contribute translations: 10 | 11 | https://poeditor.com/projects/view?id=95185 12 | 13 | I (obviously) cannot speak every language, so I cannot blindly overwrite someone else's translation with yours. POEditor lets you collaborate with other translators. 14 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 30 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - pinned 8 | - security 9 | - enhancement 10 | # Label to use when marking an issue as stale 11 | staleLabel: stale 12 | # Comment to post when marking an issue as stale. Set to `false` to disable 13 | markComment: > 14 | This issue has been automatically marked as stale because it has not had 15 | recent activity. It will be closed if no further activity occurs. Thank you 16 | for your contributions. 17 | # Comment to post when closing a stale issue. Set to `false` to disable 18 | closeComment: false 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Files for the Dalvik VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # Generated files 12 | bin/ 13 | gen/ 14 | 15 | # Gradle files 16 | .gradle/ 17 | build/ 18 | /*/build/ 19 | 20 | # Local configuration file (sdk path, etc) 21 | local.properties 22 | 23 | # Proguard folder generated by Eclipse 24 | proguard/ 25 | 26 | # Log Files 27 | *.log 28 | 29 | # From .gitignore generated by Android Studio 30 | *.iml 31 | .DS_Store 32 | /captures 33 | /.idea 34 | /.gradle* 35 | gradle-app.setting 36 | *.zip 37 | 38 | *.jar 39 | *.json 40 | -------------------------------------------------------------------------------- /Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | LOCAL_MODULE := privapp-permissions-YalpStore.xml 5 | LOCAL_MODULE_CLASS := ETC 6 | LOCAL_MODULE_TAGS := optional 7 | LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions 8 | LOCAL_SRC_FILES := $(LOCAL_PATH)/yalp-store-ota-zip/$(LOCAL_MODULE) 9 | include $(BUILD_PREBUILT) 10 | 11 | include $(CLEAR_VARS) 12 | 13 | LOCAL_MODULE := YalpStore 14 | LOCAL_MODULE_TAGS := optional 15 | LOCAL_PACKAGE_NAME := YalpStore 16 | 17 | yalpstore_root := $(LOCAL_PATH) 18 | yalpstore_dir := app 19 | yalpstore_out := $(OUT_DIR)/target/common/obj/APPS/$(LOCAL_MODULE)_intermediates 20 | yalpstore_build := $(yalpstore_root)/$(yalpstore)/build 21 | yalpstore_apk := build/outputs/apk/release/app-release-unsigned.apk 22 | 23 | $(yalpstore_root)/$(yalpstore_dir)/$(yalpstore_apk): 24 | rm -Rf $(yalpstore_build) 25 | mkdir -p $(yalpstore_out) 26 | ln -s $(yalpstore_out) $(yalpstore_build) 27 | echo "sdk.dir=$(ANDROID_HOME)" > $(yalpstore_root)/local.properties 28 | cd $(yalpstore_root) && git submodule update --recursive --init 29 | cd $(yalpstore_root)/$(yalpstore_dir) && JAVA_TOOL_OPTIONS="$(JAVA_TOOL_OPTIONS) -Dfile.encoding=UTF8" ../gradlew assembleLegacyRelease 30 | 31 | LOCAL_CERTIFICATE := platform 32 | LOCAL_SRC_FILES := $(yalpstore_dir)/$(yalpstore_apk) 33 | LOCAL_MODULE_CLASS := APPS 34 | LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) 35 | 36 | include $(BUILD_PREBUILT) -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Thank you for considering to contribute! 2 | 3 | ### Questions 4 | 5 | If you have a question or want to discuss something which is not a bug or a feature request, please use [the gitter chat room](https://gitter.im/YalpStore/Lobby). 6 | 7 | ### Bugs and feature requests 8 | 9 | Please, [search the closed issues](https://github.com/yeriomin/YalpStore/issues?q=is%3Aissue) before creating a bug or a feature request. 10 | 11 | Also, please make sure you are using the [latest version available](https://github.com/yeriomin/YalpStore/releases/latest). 12 | 13 | Keep in mind that naming an issue is important for future searches. Naming it "Bug" or "A request" is unhelpful. 14 | 15 | ### Translations 16 | 17 | Please, check out project's POEditor page: 18 | 19 | https://poeditor.com/join/project/LUPUijv2Cs 20 | 21 | POEditor is a web service for managing opensource translations. Don't hesitate to try it, you don't have to be technically adept to use it. 22 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/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 F:\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 | -dontobfuscate 19 | -keep public interface android.content.pm.IPackageInstallObserver { *; } 20 | -keep class android.content.pm.IPackageInstallObserver$Stub { *; } 21 | -keep public class android.preference.MultiSelectListPreference { *; } 22 | -keep public class com.google.protobuf.ExtensionRegistryLite { *; } 23 | -keep public class com.google.protobuf.ExtensionRegistry { *; } 24 | -keep final class com.google.protobuf.ExtensionRegistryFactory { *; } 25 | -keep public class android.support.v4.content.FileProvider { *; } 26 | -keep public class android.util.LruCache { *; } 27 | -keep public class com.github.yeriomin.yalpstore.install.InstallerPrivilegedReflection$* { *; } 28 | -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable 29 | -dontwarn sun.misc.Unsafe 30 | -optimizationpasses 5 31 | -allowaccessmodification 32 | -dontskipnonpubliclibraryclasses 33 | -renamesourcefileattribute SourceFile 34 | -keepattributes SourceFile,LineNumberTable -------------------------------------------------------------------------------- /app/src/contemporary/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/contemporary/java/com/github/yeriomin/yalpstore/SearchActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Yalp Store 3 | * Copyright (C) 2018 Sergey Yeriomin 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License along 16 | * with this program; if not, write to the Free Software Foundation, Inc., 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | */ 19 | 20 | package com.github.yeriomin.yalpstore; 21 | 22 | import android.support.v7.widget.SearchView; 23 | import android.view.Menu; 24 | 25 | public class SearchActivity extends SearchActivityAbstract { 26 | 27 | @Override 28 | protected void search(String query, boolean isPackageName) { 29 | if (isPackageName) { 30 | startActivity(DetailsActivity.getDetailsIntent(this, query)); 31 | finish(); 32 | } else { 33 | onNewIntent(getSearchIntent(query)); 34 | } 35 | } 36 | 37 | @Override 38 | public boolean onCreateOptionsMenu(Menu menu) { 39 | boolean result = super.onCreateOptionsMenu(menu); 40 | ((SearchView) menu.findItem(R.id.action_search).getActionView()).setQuery(query,false); 41 | return result; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/contemporary/java/com/github/yeriomin/yalpstore/fragment/preference/PreferenceFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Yalp Store 3 | * Copyright (C) 2018 Sergey Yeriomin 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License along 16 | * with this program; if not, write to the Free Software Foundation, Inc., 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | */ 19 | 20 | package com.github.yeriomin.yalpstore.fragment.preference; 21 | 22 | import android.os.Bundle; 23 | import android.support.annotation.Nullable; 24 | 25 | import com.github.yeriomin.yalpstore.PreferenceActivity; 26 | import com.github.yeriomin.yalpstore.R; 27 | 28 | public class PreferenceFragment extends android.preference.PreferenceFragment { 29 | 30 | @Override 31 | public void onCreate(@Nullable Bundle savedInstanceState) { 32 | super.onCreate(savedInstanceState); 33 | addPreferencesFromResource(R.xml.settings); 34 | new AllPreferences((PreferenceActivity) getActivity()).draw(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/contemporary/java/com/github/yeriomin/yalpstore/task/LoadCircularImageTask.java: -------------------------------------------------------------------------------- 1 | package com.github.yeriomin.yalpstore.task; 2 | 3 | import android.graphics.Bitmap; 4 | import android.graphics.drawable.Drawable; 5 | import android.support.v4.graphics.drawable.RoundedBitmapDrawable; 6 | import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory; 7 | import android.widget.ImageView; 8 | 9 | public class LoadCircularImageTask extends LoadImageTask { 10 | 11 | private boolean cropCircle = false; 12 | 13 | public LoadImageTask setCropCircle(boolean cropCircle) { 14 | this.cropCircle = cropCircle; 15 | return this; 16 | } 17 | 18 | public LoadCircularImageTask(ImageView imageView) { 19 | super(imageView); 20 | } 21 | 22 | @Override 23 | protected Drawable getDrawable(Bitmap bitmap) { 24 | if (cropCircle) { 25 | RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(imageView.getResources(), bitmap); 26 | roundedBitmapDrawable.setCircular(true); 27 | roundedBitmapDrawable.setAntiAlias(true); 28 | return roundedBitmapDrawable; 29 | } else { 30 | return super.getDrawable(bitmap); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/contemporary/java/com/github/yeriomin/yalpstore/view/InstalledAppsMainButtonAdapter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Yalp Store 3 | * Copyright (C) 2018 Sergey Yeriomin 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License along 16 | * with this program; if not, write to the Free Software Foundation, Inc., 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | */ 19 | 20 | package com.github.yeriomin.yalpstore.view; 21 | 22 | import android.support.design.widget.FloatingActionButton; 23 | import android.view.View; 24 | 25 | import com.github.yeriomin.yalpstore.R; 26 | 27 | public class InstalledAppsMainButtonAdapter extends InstalledAppsMainButtonAdapterAbstract { 28 | 29 | public InstalledAppsMainButtonAdapter(View button) { 30 | super(button); 31 | } 32 | 33 | @Override 34 | public InstalledAppsMainButtonAdapterAbstract init() { 35 | ((FloatingActionButton) button).setImageResource(R.drawable.ic_refresh); 36 | return super.init(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/contemporary/java/com/github/yeriomin/yalpstore/view/UpdatableAppsButtonAdapter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Yalp Store 3 | * Copyright (C) 2018 Sergey Yeriomin 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License along 16 | * with this program; if not, write to the Free Software Foundation, Inc., 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | */ 19 | 20 | package com.github.yeriomin.yalpstore.view; 21 | 22 | import android.support.design.widget.FloatingActionButton; 23 | import android.view.View; 24 | 25 | import com.github.yeriomin.yalpstore.R; 26 | 27 | public class UpdatableAppsButtonAdapter extends UpdatableAppsButtonAdapterAbstract { 28 | 29 | public UpdatableAppsButtonAdapter(View button) { 30 | super(button); 31 | } 32 | 33 | @Override 34 | public UpdatableAppsButtonAdapterAbstract setReady() { 35 | ((FloatingActionButton) button).setImageResource(R.drawable.ic_download); 36 | return super.setReady(); 37 | } 38 | 39 | @Override 40 | public UpdatableAppsButtonAdapterAbstract setUpdating() { 41 | ((FloatingActionButton) button).setImageResource(R.drawable.ic_cancel); 42 | return super.setUpdating(); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/contemporary/res/drawable-v21/ic_menu.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/contemporary/res/drawable/button_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/contemporary/res/drawable/ic_menu.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/contemporary/res/layout/applist_main_button.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/contemporary/res/layout/details_permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 18 | 19 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/contemporary/res/layout/details_screenshots.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/contemporary/res/layout/preferences_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/contemporary/res/layout/search_view_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /app/src/contemporary/res/layout/suggestion_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/contemporary/res/menu/menu_accounts.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 11 | 13 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/contemporary/res/menu/menu_drawer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 11 | 15 | 19 | 23 | 24 | 28 | 32 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/contemporary/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #357ec7 4 | #7f7f7f 5 | -------------------------------------------------------------------------------- /app/src/contemporary/res/values/style.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 12 | 15 | 21 | 25 | 28 | 31 | -------------------------------------------------------------------------------- /app/src/legacy/java/com/github/yeriomin/yalpstore/OnAppClickListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Yalp Store 3 | * Copyright (C) 2018 Sergey Yeriomin 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License along 16 | * with this program; if not, write to the Free Software Foundation, Inc., 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | */ 19 | 20 | package com.github.yeriomin.yalpstore; 21 | 22 | import android.view.View; 23 | import android.widget.AdapterView; 24 | 25 | import com.github.yeriomin.yalpstore.model.App; 26 | 27 | class OnAppClickListener implements AdapterView.OnItemClickListener { 28 | 29 | private AppListActivity activity; 30 | 31 | public OnAppClickListener(AppListActivity activity) { 32 | this.activity = activity; 33 | } 34 | 35 | @Override 36 | public void onItemClick(AdapterView parent, View view, int position, long id) { 37 | App app = activity.getAppByListPosition(position); 38 | if (null == app) { 39 | return; 40 | } 41 | DetailsActivity.app = app; 42 | activity.startActivity(DetailsActivity.getDetailsIntent(activity, DetailsActivity.app.getPackageName())); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/legacy/java/com/github/yeriomin/yalpstore/PreferenceActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Yalp Store 3 | * Copyright (C) 2018 Sergey Yeriomin 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License along 16 | * with this program; if not, write to the Free Software Foundation, Inc., 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | */ 19 | 20 | package com.github.yeriomin.yalpstore; 21 | 22 | import android.os.Bundle; 23 | 24 | import com.github.yeriomin.yalpstore.fragment.preference.AllPreferences; 25 | 26 | public class PreferenceActivity extends android.preference.PreferenceActivity { 27 | 28 | @Override 29 | public void onCreate(Bundle savedInstanceState) { 30 | new ThemeManager().setTheme(this); 31 | super.onCreate(savedInstanceState); 32 | PreferenceUtil.putStringSet(this, PreferenceUtil.PREFERENCE_UPDATE_LIST, PreferenceUtil.getStringSet(this, PreferenceUtil.PREFERENCE_UPDATE_LIST)); 33 | addPreferencesFromResource(R.xml.settings); 34 | new AllPreferences(this).draw(); 35 | } 36 | 37 | @Override 38 | public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { 39 | if (!YalpStorePermissionManager.isGranted(requestCode, permissions, grantResults)) { 40 | finish(); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /app/src/legacy/java/com/github/yeriomin/yalpstore/SearchActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Yalp Store 3 | * Copyright (C) 2018 Sergey Yeriomin 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License along 16 | * with this program; if not, write to the Free Software Foundation, Inc., 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | */ 19 | 20 | package com.github.yeriomin.yalpstore; 21 | 22 | public class SearchActivity extends SearchActivityAbstract { 23 | } 24 | -------------------------------------------------------------------------------- /app/src/legacy/java/com/github/yeriomin/yalpstore/fragment/details/Background.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Yalp Store 3 | * Copyright (C) 2018 Sergey Yeriomin 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License along 16 | * with this program; if not, write to the Free Software Foundation, Inc., 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | */ 19 | 20 | package com.github.yeriomin.yalpstore.fragment.details; 21 | 22 | import com.github.yeriomin.yalpstore.DetailsActivity; 23 | import com.github.yeriomin.yalpstore.fragment.Abstract; 24 | import com.github.yeriomin.yalpstore.model.App; 25 | 26 | public class Background extends Abstract { 27 | 28 | public Background(DetailsActivity activity, App app) { 29 | super(activity, app); 30 | } 31 | 32 | @Override 33 | public void draw() { 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/legacy/java/com/github/yeriomin/yalpstore/view/InstalledAppsMainButtonAdapter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Yalp Store 3 | * Copyright (C) 2018 Sergey Yeriomin 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License along 16 | * with this program; if not, write to the Free Software Foundation, Inc., 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | */ 19 | 20 | package com.github.yeriomin.yalpstore.view; 21 | 22 | import android.view.View; 23 | import android.widget.Button; 24 | 25 | import com.github.yeriomin.yalpstore.R; 26 | 27 | public class InstalledAppsMainButtonAdapter extends InstalledAppsMainButtonAdapterAbstract { 28 | 29 | public InstalledAppsMainButtonAdapter(View button) { 30 | super(button); 31 | } 32 | 33 | @Override 34 | public InstalledAppsMainButtonAdapterAbstract init() { 35 | ((Button) button).setText(R.string.list_check_updates); 36 | return super.init(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/legacy/java/com/github/yeriomin/yalpstore/view/UpdatableAppsButtonAdapter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Yalp Store 3 | * Copyright (C) 2018 Sergey Yeriomin 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License along 16 | * with this program; if not, write to the Free Software Foundation, Inc., 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | */ 19 | 20 | package com.github.yeriomin.yalpstore.view; 21 | 22 | import android.view.View; 23 | import android.widget.Button; 24 | 25 | import com.github.yeriomin.yalpstore.R; 26 | 27 | public class UpdatableAppsButtonAdapter extends UpdatableAppsButtonAdapterAbstract { 28 | 29 | public UpdatableAppsButtonAdapter(View button) { 30 | super(button); 31 | } 32 | 33 | @Override 34 | public UpdatableAppsButtonAdapterAbstract setReady() { 35 | ((Button) button).setText(R.string.list_update_all); 36 | return super.setReady(); 37 | } 38 | 39 | @Override 40 | public UpdatableAppsButtonAdapterAbstract setUpdating() { 41 | ((Button) button).setText(android.R.string.cancel); 42 | return super.setUpdating(); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/legacy/res/drawable-v21/ic_accounts.xml: -------------------------------------------------------------------------------- 1 | 19 | 20 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/legacy/res/drawable/ic_accounts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeriomin/YalpStore/37f24c2fc2078cefc141d03c1379a650298ee2a8/app/src/legacy/res/drawable/ic_accounts.png -------------------------------------------------------------------------------- /app/src/legacy/res/layout/applist_main_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 |