├── .github
└── workflows
│ └── android.yml
├── .gitignore
├── .idea
├── .gitignore
├── .name
├── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── compiler.xml
├── gradle.xml
├── jarRepositories.xml
├── kotlinc.xml
├── misc.xml
├── other.xml
└── vcs.xml
├── AppIcon
├── OxShellBanner.ase
├── OxShellBanner.png
├── OxShellBannerFree.png
├── OxShellBanner_old.png
├── OxShellIcon.ase
├── OxShellIcon512.ase
├── OxShellIcon512.png
├── OxShellIcon512_old.png
├── OxShellIconBack512.png
├── OxShellIconFree512.png
├── OxShellIconFront512.png
├── OxShellIcon_Back.png
├── OxShellIcon_Front.png
├── OxShellText.png
├── OxWhite512.png
├── banner_free_xhdpi (through clideo.com).png
├── banner_xhdpi (through clideo.com).png
├── icon_free_xhdpi (through clideo.com).png
└── icon_xhdpi (through clideo.com).png
├── LICENSE
├── Media
├── GalaxyS23
│ ├── explorer_context.png
│ ├── xmb_audio.png
│ ├── xmb_explorer.png
│ ├── xmb_image.png
│ ├── xmb_maps.png
│ ├── xmb_other.png
│ ├── xmb_productivity.png
│ ├── xmb_settings.png
│ ├── xmb_social.png
│ └── xmb_video.png
├── GalaxyTabS8
│ ├── explorer_context.png
│ ├── xmb_audio.png
│ ├── xmb_explorer.png
│ ├── xmb_image.png
│ ├── xmb_maps.png
│ ├── xmb_other.png
│ ├── xmb_productivity.png
│ ├── xmb_settings.png
│ ├── xmb_social.png
│ └── xmb_video.png
├── GalaxyTabS8Plus
│ ├── explorer_context.png
│ ├── xmb_audio.png
│ ├── xmb_explorer.png
│ ├── xmb_image.png
│ ├── xmb_maps.png
│ ├── xmb_other.png
│ ├── xmb_productivity.png
│ ├── xmb_settings.png
│ ├── xmb_social.png
│ └── xmb_video.png
└── Old
│ ├── file_explorer_context_portrait.png
│ ├── xmb_add_app_to_home.png
│ ├── xmb_audio.png
│ ├── xmb_audio_portrait.png
│ ├── xmb_explorer.png
│ ├── xmb_explorer_crop.png
│ ├── xmb_explorer_portrait.png
│ ├── xmb_games.png
│ ├── xmb_games_portrait.png
│ ├── xmb_other.png
│ ├── xmb_productivity.png
│ ├── xmb_settings.png
│ ├── xmb_social.png
│ ├── xmb_social_portrait.png
│ ├── xmb_video.png
│ └── xmb_video_portrait.png
├── Play Store Listing.txt
├── PrivacyPolicy
└── README.md
├── README.md
├── Sounds
├── xmb_music
│ ├── xmb_musac (by suzan).mp3
│ ├── xmb_musac (by suzan, normalized and cut).mp3
│ ├── xmb_music.mp3
│ └── xmb_music.sunvox
└── xmb_shift
│ ├── bass05_C3.wav
│ ├── bass12_C5.wav
│ ├── bd04_C6.wav
│ ├── bd06_C6.wav
│ ├── bd09_C6.wav
│ ├── bd12_C6.wav
│ ├── brokk_G5.wav
│ ├── cow_G7.wav
│ ├── fm_bass1_C5.wav
│ ├── fm_bass_C4.wav
│ ├── hihat01_d6.wav
│ ├── hihat02_A7.wav
│ └── xmb_shift_sounds.sunvox
├── app
├── .gitignore
├── build.gradle
├── keystores
│ └── .gitkeep
├── libs
│ └── gson-2.9.0.jar
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ ├── Audio
│ │ ├── cow_G7.wav
│ │ ├── xmb_musac.mp3
│ │ └── xmb_music.mp3
│ ├── Fonts
│ │ ├── exo.regular.otf
│ │ └── src.txt
│ ├── Image
│ │ └── inputs
│ │ │ ├── asset_gen_a.png
│ │ │ ├── asset_gen_b.png
│ │ │ ├── asset_gen_c.png
│ │ │ ├── asset_gen_dpad_down.png
│ │ │ ├── asset_gen_dpad_left.png
│ │ │ ├── asset_gen_dpad_right.png
│ │ │ ├── asset_gen_dpad_up.png
│ │ │ ├── asset_gen_empty.png
│ │ │ ├── asset_gen_l1.png
│ │ │ ├── asset_gen_l2.png
│ │ │ ├── asset_gen_lstick.png
│ │ │ ├── asset_gen_r1.png
│ │ │ ├── asset_gen_r2.png
│ │ │ ├── asset_gen_rstick.png
│ │ │ ├── asset_gen_select.png
│ │ │ ├── asset_gen_start.png
│ │ │ ├── asset_gen_x.png
│ │ │ ├── asset_gen_y.png
│ │ │ ├── asset_gen_z.png
│ │ │ ├── asset_kb.png
│ │ │ ├── asset_kb_0.png
│ │ │ ├── asset_kb_1.png
│ │ │ ├── asset_kb_2.png
│ │ │ ├── asset_kb_3.png
│ │ │ ├── asset_kb_4.png
│ │ │ ├── asset_kb_5.png
│ │ │ ├── asset_kb_6.png
│ │ │ ├── asset_kb_7.png
│ │ │ ├── asset_kb_8.png
│ │ │ ├── asset_kb_9.png
│ │ │ ├── asset_kb_a.png
│ │ │ ├── asset_kb_alt.png
│ │ │ ├── asset_kb_apostrophe.png
│ │ │ ├── asset_kb_arrow_down.png
│ │ │ ├── asset_kb_arrow_left.png
│ │ │ ├── asset_kb_arrow_right.png
│ │ │ ├── asset_kb_arrow_up.png
│ │ │ ├── asset_kb_b.png
│ │ │ ├── asset_kb_backspace.png
│ │ │ ├── asset_kb_bslash.png
│ │ │ ├── asset_kb_c.png
│ │ │ ├── asset_kb_close_bracket.png
│ │ │ ├── asset_kb_comma.png
│ │ │ ├── asset_kb_ctrl.png
│ │ │ ├── asset_kb_d.png
│ │ │ ├── asset_kb_dash.png
│ │ │ ├── asset_kb_del.png
│ │ │ ├── asset_kb_e.png
│ │ │ ├── asset_kb_empty.png
│ │ │ ├── asset_kb_enter.png
│ │ │ ├── asset_kb_equal.png
│ │ │ ├── asset_kb_esc.png
│ │ │ ├── asset_kb_f.png
│ │ │ ├── asset_kb_f1.png
│ │ │ ├── asset_kb_f10.png
│ │ │ ├── asset_kb_f11.png
│ │ │ ├── asset_kb_f12.png
│ │ │ ├── asset_kb_f2.png
│ │ │ ├── asset_kb_f3.png
│ │ │ ├── asset_kb_f4.png
│ │ │ ├── asset_kb_f5.png
│ │ │ ├── asset_kb_f6.png
│ │ │ ├── asset_kb_f7.png
│ │ │ ├── asset_kb_f8.png
│ │ │ ├── asset_kb_f9.png
│ │ │ ├── asset_kb_fslash.png
│ │ │ ├── asset_kb_g.png
│ │ │ ├── asset_kb_grave.png
│ │ │ ├── asset_kb_h.png
│ │ │ ├── asset_kb_i.png
│ │ │ ├── asset_kb_j.png
│ │ │ ├── asset_kb_k.png
│ │ │ ├── asset_kb_l.png
│ │ │ ├── asset_kb_lalt.png
│ │ │ ├── asset_kb_lctrl.png
│ │ │ ├── asset_kb_lshift.png
│ │ │ ├── asset_kb_m.png
│ │ │ ├── asset_kb_n.png
│ │ │ ├── asset_kb_o.png
│ │ │ ├── asset_kb_open_bracket.png
│ │ │ ├── asset_kb_p.png
│ │ │ ├── asset_kb_period.png
│ │ │ ├── asset_kb_q.png
│ │ │ ├── asset_kb_r.png
│ │ │ ├── asset_kb_ralt.png
│ │ │ ├── asset_kb_rctrl.png
│ │ │ ├── asset_kb_rshift.png
│ │ │ ├── asset_kb_s.png
│ │ │ ├── asset_kb_semicolon.png
│ │ │ ├── asset_kb_shift.png
│ │ │ ├── asset_kb_space.png
│ │ │ ├── asset_kb_super.png
│ │ │ ├── asset_kb_t.png
│ │ │ ├── asset_kb_tab.png
│ │ │ ├── asset_kb_u.png
│ │ │ ├── asset_kb_v.png
│ │ │ ├── asset_kb_w.png
│ │ │ ├── asset_kb_x.png
│ │ │ ├── asset_kb_y.png
│ │ │ ├── asset_kb_z.png
│ │ │ ├── asset_ps.png
│ │ │ ├── asset_ps_circle.png
│ │ │ ├── asset_ps_cross.png
│ │ │ ├── asset_ps_dpad_down.png
│ │ │ ├── asset_ps_dpad_left.png
│ │ │ ├── asset_ps_dpad_right.png
│ │ │ ├── asset_ps_dpad_up.png
│ │ │ ├── asset_ps_home.png
│ │ │ ├── asset_ps_l1.png
│ │ │ ├── asset_ps_l2.png
│ │ │ ├── asset_ps_lstick.png
│ │ │ ├── asset_ps_lstick_down.png
│ │ │ ├── asset_ps_lstick_left.png
│ │ │ ├── asset_ps_lstick_right.png
│ │ │ ├── asset_ps_lstick_up.png
│ │ │ ├── asset_ps_options.png
│ │ │ ├── asset_ps_r1.png
│ │ │ ├── asset_ps_r2.png
│ │ │ ├── asset_ps_rstick.png
│ │ │ ├── asset_ps_rstick_down.png
│ │ │ ├── asset_ps_rstick_left.png
│ │ │ ├── asset_ps_rstick_right.png
│ │ │ ├── asset_ps_rstick_up.png
│ │ │ ├── asset_ps_share.png
│ │ │ ├── asset_ps_square.png
│ │ │ ├── asset_ps_triangle.png
│ │ │ ├── asset_switch.png
│ │ │ ├── asset_switch_a.png
│ │ │ ├── asset_switch_b.png
│ │ │ ├── asset_switch_dpad_down.png
│ │ │ ├── asset_switch_dpad_left.png
│ │ │ ├── asset_switch_dpad_right.png
│ │ │ ├── asset_switch_dpad_up.png
│ │ │ ├── asset_switch_home.png
│ │ │ ├── asset_switch_l.png
│ │ │ ├── asset_switch_lstick.png
│ │ │ ├── asset_switch_lstick_down.png
│ │ │ ├── asset_switch_lstick_left.png
│ │ │ ├── asset_switch_lstick_right.png
│ │ │ ├── asset_switch_lstick_up.png
│ │ │ ├── asset_switch_minus.png
│ │ │ ├── asset_switch_plus.png
│ │ │ ├── asset_switch_r.png
│ │ │ ├── asset_switch_rstick.png
│ │ │ ├── asset_switch_rstick_down.png
│ │ │ ├── asset_switch_rstick_left.png
│ │ │ ├── asset_switch_rstick_right.png
│ │ │ ├── asset_switch_rstick_up.png
│ │ │ ├── asset_switch_screenshot.png
│ │ │ ├── asset_switch_x.png
│ │ │ ├── asset_switch_y.png
│ │ │ ├── asset_switch_zl.png
│ │ │ ├── asset_switch_zr.png
│ │ │ ├── asset_touch_down_hold.png
│ │ │ ├── asset_touch_drag_down.png
│ │ │ ├── asset_touch_drag_left.png
│ │ │ ├── asset_touch_drag_right.png
│ │ │ ├── asset_touch_drag_up.png
│ │ │ ├── asset_touch_up.png
│ │ │ ├── asset_xbox.png
│ │ │ ├── asset_xbox_a.png
│ │ │ ├── asset_xbox_b.png
│ │ │ ├── asset_xbox_dpad_down.png
│ │ │ ├── asset_xbox_dpad_left.png
│ │ │ ├── asset_xbox_dpad_right.png
│ │ │ ├── asset_xbox_dpad_up.png
│ │ │ ├── asset_xbox_home.png
│ │ │ ├── asset_xbox_lb.png
│ │ │ ├── asset_xbox_lstick.png
│ │ │ ├── asset_xbox_lstick_down.png
│ │ │ ├── asset_xbox_lstick_left.png
│ │ │ ├── asset_xbox_lstick_right.png
│ │ │ ├── asset_xbox_lstick_up.png
│ │ │ ├── asset_xbox_lt.png
│ │ │ ├── asset_xbox_menu.png
│ │ │ ├── asset_xbox_rb.png
│ │ │ ├── asset_xbox_rstick.png
│ │ │ ├── asset_xbox_rstick_down.png
│ │ │ ├── asset_xbox_rstick_left.png
│ │ │ ├── asset_xbox_rstick_right.png
│ │ │ ├── asset_xbox_rstick_up.png
│ │ │ ├── asset_xbox_rt.png
│ │ │ ├── asset_xbox_view.png
│ │ │ ├── asset_xbox_x.png
│ │ │ ├── asset_xbox_y.png
│ │ │ └── src.txt
│ └── Shaders
│ │ ├── blue_dune.fsh
│ │ ├── channel0.png
│ │ ├── channel1.png
│ │ ├── channel2.png
│ │ ├── channel3.png
│ │ ├── fallback.fsh
│ │ ├── other_dune.fsh
│ │ ├── planet.fsh
│ │ ├── smooth_cheese.fsh
│ │ └── vert.vsh
│ ├── ic_launcher-playstore.png
│ ├── java
│ └── com
│ │ └── OxGames
│ │ └── OxShell
│ │ ├── AccessService.java
│ │ ├── Adapters
│ │ ├── DetailAdapter.java
│ │ ├── DynamicInputAdapter.java
│ │ ├── GridAdapter.java
│ │ ├── InputRowAdapter.java
│ │ └── XMBAdapter.java
│ │ ├── Data
│ │ ├── DataLocation.java
│ │ ├── DataRef.java
│ │ ├── DetailItem.java
│ │ ├── DynamicInputRow.java
│ │ ├── Executable.java
│ │ ├── FontRef.java
│ │ ├── GridItem.java
│ │ ├── HomeItem.java
│ │ ├── ImageRef.java
│ │ ├── InputType.java
│ │ ├── IntentFlags.java
│ │ ├── IntentLaunchData.java
│ │ ├── IntentPutExtra.java
│ │ ├── KeyCombo.java
│ │ ├── KeyComboAction.java
│ │ ├── Metadata.java
│ │ ├── PackagesCache.java
│ │ ├── Paths.java
│ │ ├── ResImage.java
│ │ ├── SettingsKeeper.java
│ │ ├── ShortcutsCache.java
│ │ └── XMBItem.java
│ │ ├── ExplorerActivity.java
│ │ ├── FileChooserActivity.java
│ │ ├── Helpers
│ │ ├── AndroidHelpers.java
│ │ ├── AudioPool.java
│ │ ├── ExplorerBehaviour.java
│ │ ├── InputHandler.java
│ │ ├── LogcatHelper.java
│ │ ├── MathHelpers.java
│ │ ├── MediaPlayer.java
│ │ ├── Serialaver.java
│ │ ├── ShellCommander.java
│ │ └── SlideTouchHandler.java
│ │ ├── HomeActivity.java
│ │ ├── Interfaces
│ │ ├── AdapterListener.java
│ │ ├── CustomViewListener.java
│ │ ├── DirsCarrier.java
│ │ ├── DirsViewListener.java
│ │ ├── DynamicInputListener.java
│ │ ├── InputReceiver.java
│ │ ├── PkgAppsListener.java
│ │ ├── QuadConsumer.java
│ │ ├── Refreshable.java
│ │ ├── SlideTouchListener.java
│ │ ├── TriConsumer.java
│ │ └── XMBAdapterListener.java
│ │ ├── MediaPlayerActivity.java
│ │ ├── OxShellApp.java
│ │ ├── PagedActivity.java
│ │ ├── Views
│ │ ├── BetterTextView.java
│ │ ├── DebugView.java
│ │ ├── DynamicInputItemView.java
│ │ ├── DynamicInputRowView.java
│ │ ├── DynamicInputView.java
│ │ ├── ExplorerView.java
│ │ ├── HomeView.java
│ │ ├── MediaPlayerView.java
│ │ ├── NonConsumableRecyclerView.java
│ │ ├── PromptView.java
│ │ ├── SettingsDrawer.java
│ │ ├── SlideTouchListView.java
│ │ ├── TooltipBar.java
│ │ └── XMBView.java
│ │ └── Wallpaper
│ │ ├── GLRenderer.java
│ │ ├── GLWallpaperService.java
│ │ └── Shader.java
│ └── res
│ ├── drawable
│ ├── banner_free_xhdpi.png
│ ├── banner_xhdpi.png
│ ├── baseline_adb_24.xml
│ ├── baseline_arrow_back_24.xml
│ ├── baseline_arrow_drop_down_24.xml
│ ├── baseline_close_24.xml
│ ├── baseline_fast_forward_24.xml
│ ├── baseline_fast_rewind_24.xml
│ ├── baseline_fullscreen_24.xml
│ ├── baseline_hourglass_empty_24.xml
│ ├── baseline_info_24.xml
│ ├── baseline_library_music_24.xml
│ ├── baseline_pause_24.xml
│ ├── baseline_person_24.xml
│ ├── baseline_play_arrow_24.xml
│ ├── baseline_skip_next_24.xml
│ ├── baseline_skip_previous_24.xml
│ ├── baseline_video_library_24.xml
│ ├── fading_left_edge.xml
│ ├── fading_right_edge.xml
│ ├── ic_baseline_accessibility_24.xml
│ ├── ic_baseline_add_circle_outline_24.xml
│ ├── ic_baseline_audio_file_24.xml
│ ├── ic_baseline_auto_awesome_24.xml
│ ├── ic_baseline_block_24.xml
│ ├── ic_baseline_cancel_24.xml
│ ├── ic_baseline_check_24.xml
│ ├── ic_baseline_construction_24.xml
│ ├── ic_baseline_folder_24.xml
│ ├── ic_baseline_forum_24.xml
│ ├── ic_baseline_games_24.xml
│ ├── ic_baseline_headphones_24.xml
│ ├── ic_baseline_hide_image_24.xml
│ ├── ic_baseline_home_24.xml
│ ├── ic_baseline_image_24.xml
│ ├── ic_baseline_map_24.xml
│ ├── ic_baseline_movie_24.xml
│ ├── ic_baseline_newspaper_24.xml
│ ├── ic_baseline_photo_camera_24.xml
│ ├── ic_baseline_question_mark_24.xml
│ ├── ic_baseline_send_time_extension_24.xml
│ ├── ic_baseline_settings_24.xml
│ ├── ic_baseline_source_24.xml
│ ├── ic_baseline_video_file_24.xml
│ ├── ic_baseline_view_list_24.xml
│ ├── ic_baseline_work_24.xml
│ ├── icon_free_xhdpi.png
│ ├── icon_xhdpi.png
│ ├── ox_white.png
│ ├── rounded_outline_shape.xml
│ ├── rounded_shape.xml
│ └── rounded_spinner.xml
│ ├── layout
│ ├── activity_chooser.xml
│ ├── activity_explorer.xml
│ ├── activity_home.xml
│ ├── detail_row.xml
│ ├── home_context_menu.xml
│ ├── xmb_cat.xml
│ ├── xmb_inner_item.xml
│ └── xmb_item.xml
│ ├── mipmap-anydpi-v26
│ ├── ic_launcher.xml
│ └── ic_launcher_round.xml
│ ├── mipmap-hdpi
│ ├── ic_launcher.png
│ ├── ic_launcher_background.png
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-mdpi
│ ├── ic_launcher.png
│ ├── ic_launcher_background.png
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xhdpi
│ ├── ic_launcher.png
│ ├── ic_launcher_background.png
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxhdpi
│ ├── ic_launcher.png
│ ├── ic_launcher_background.png
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxxhdpi
│ ├── ic_launcher.png
│ ├── ic_launcher_background.png
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── values-night
│ ├── styles.xml
│ └── themes.xml
│ ├── values
│ ├── attrs.xml
│ ├── attrs_explorer_view.xml
│ ├── colors.xml
│ ├── strings.xml
│ ├── styles.xml
│ └── themes.xml
│ └── xml
│ ├── accessibility_service_config.xml
│ ├── ox_paper.xml
│ └── provider_paths.xml
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
/.github/workflows/android.yml:
--------------------------------------------------------------------------------
1 | name: Android CI
2 |
3 | on:
4 | push:
5 | branches: [ "master" ]
6 | pull_request:
7 | branches: [ "master" ]
8 |
9 | jobs:
10 | build:
11 |
12 | runs-on: ubuntu-latest
13 |
14 | steps:
15 | - uses: actions/checkout@v3
16 | - name: set up JDK 17
17 | uses: actions/setup-java@v3
18 | with:
19 | java-version: '17'
20 | distribution: 'temurin'
21 | cache: gradle
22 |
23 | - name: Grant execute permission for gradlew
24 | run: chmod +x gradlew
25 | - name: Build with Gradle
26 | run: ./gradlew assembleDebug
27 |
28 | - name: Create publish bundle
29 | run: mkdir -p build/gh-app-publish/; find app/build/ -iname "*.apk" -exec mv "{}" build/gh-app-publish/ \;
30 | - name: Upload artifacts
31 | uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
32 | with:
33 | name: build-artifacts
34 | retention-days: 14
35 | if-no-files-found: error
36 | path: build/gh-app-publish/
37 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | /.idea/navEditor.xml
9 | /.idea/assetWizardSettings.xml
10 | .DS_Store
11 | /build
12 | /captures
13 | .externalNativeBuild
14 | .cxx
15 | local.properties
16 |
17 | #Added due to its constant change and non-portable nature
18 | /.idea/deploymentTargetDropDown.xml
19 |
20 | #Private keystore data
21 | /app/keystores
22 | !/app/keystores/.gitkeep
23 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | OxShell
--------------------------------------------------------------------------------
/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | xmlns:android
15 |
16 | ^$
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | xmlns:.*
26 |
27 | ^$
28 |
29 |
30 | BY_NAME
31 |
32 |
33 |
34 |
35 |
36 |
37 | .*:id
38 |
39 | http://schemas.android.com/apk/res/android
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | .*:name
49 |
50 | http://schemas.android.com/apk/res/android
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 | name
60 |
61 | ^$
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 | style
71 |
72 | ^$
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 | .*
82 |
83 | ^$
84 |
85 |
86 | BY_NAME
87 |
88 |
89 |
90 |
91 |
92 |
93 | .*
94 |
95 | http://schemas.android.com/apk/res/android
96 |
97 |
98 | ANDROID_ATTRIBUTE_ORDER
99 |
100 |
101 |
102 |
103 |
104 |
105 | .*
106 |
107 | .*
108 |
109 |
110 | BY_NAME
111 |
112 |
113 |
114 |
115 |
116 |
117 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
19 |
20 |
--------------------------------------------------------------------------------
/.idea/jarRepositories.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/.idea/kotlinc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/.idea/other.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/AppIcon/OxShellBanner.ase:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellBanner.ase
--------------------------------------------------------------------------------
/AppIcon/OxShellBanner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellBanner.png
--------------------------------------------------------------------------------
/AppIcon/OxShellBannerFree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellBannerFree.png
--------------------------------------------------------------------------------
/AppIcon/OxShellBanner_old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellBanner_old.png
--------------------------------------------------------------------------------
/AppIcon/OxShellIcon.ase:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellIcon.ase
--------------------------------------------------------------------------------
/AppIcon/OxShellIcon512.ase:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellIcon512.ase
--------------------------------------------------------------------------------
/AppIcon/OxShellIcon512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellIcon512.png
--------------------------------------------------------------------------------
/AppIcon/OxShellIcon512_old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellIcon512_old.png
--------------------------------------------------------------------------------
/AppIcon/OxShellIconBack512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellIconBack512.png
--------------------------------------------------------------------------------
/AppIcon/OxShellIconFree512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellIconFree512.png
--------------------------------------------------------------------------------
/AppIcon/OxShellIconFront512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellIconFront512.png
--------------------------------------------------------------------------------
/AppIcon/OxShellIcon_Back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellIcon_Back.png
--------------------------------------------------------------------------------
/AppIcon/OxShellIcon_Front.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellIcon_Front.png
--------------------------------------------------------------------------------
/AppIcon/OxShellText.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxShellText.png
--------------------------------------------------------------------------------
/AppIcon/OxWhite512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/OxWhite512.png
--------------------------------------------------------------------------------
/AppIcon/banner_free_xhdpi (through clideo.com).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/banner_free_xhdpi (through clideo.com).png
--------------------------------------------------------------------------------
/AppIcon/banner_xhdpi (through clideo.com).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/banner_xhdpi (through clideo.com).png
--------------------------------------------------------------------------------
/AppIcon/icon_free_xhdpi (through clideo.com).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/icon_free_xhdpi (through clideo.com).png
--------------------------------------------------------------------------------
/AppIcon/icon_xhdpi (through clideo.com).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/AppIcon/icon_xhdpi (through clideo.com).png
--------------------------------------------------------------------------------
/Media/GalaxyS23/explorer_context.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyS23/explorer_context.png
--------------------------------------------------------------------------------
/Media/GalaxyS23/xmb_audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyS23/xmb_audio.png
--------------------------------------------------------------------------------
/Media/GalaxyS23/xmb_explorer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyS23/xmb_explorer.png
--------------------------------------------------------------------------------
/Media/GalaxyS23/xmb_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyS23/xmb_image.png
--------------------------------------------------------------------------------
/Media/GalaxyS23/xmb_maps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyS23/xmb_maps.png
--------------------------------------------------------------------------------
/Media/GalaxyS23/xmb_other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyS23/xmb_other.png
--------------------------------------------------------------------------------
/Media/GalaxyS23/xmb_productivity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyS23/xmb_productivity.png
--------------------------------------------------------------------------------
/Media/GalaxyS23/xmb_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyS23/xmb_settings.png
--------------------------------------------------------------------------------
/Media/GalaxyS23/xmb_social.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyS23/xmb_social.png
--------------------------------------------------------------------------------
/Media/GalaxyS23/xmb_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyS23/xmb_video.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8/explorer_context.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8/explorer_context.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8/xmb_audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8/xmb_audio.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8/xmb_explorer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8/xmb_explorer.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8/xmb_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8/xmb_image.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8/xmb_maps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8/xmb_maps.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8/xmb_other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8/xmb_other.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8/xmb_productivity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8/xmb_productivity.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8/xmb_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8/xmb_settings.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8/xmb_social.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8/xmb_social.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8/xmb_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8/xmb_video.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8Plus/explorer_context.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8Plus/explorer_context.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8Plus/xmb_audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8Plus/xmb_audio.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8Plus/xmb_explorer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8Plus/xmb_explorer.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8Plus/xmb_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8Plus/xmb_image.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8Plus/xmb_maps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8Plus/xmb_maps.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8Plus/xmb_other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8Plus/xmb_other.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8Plus/xmb_productivity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8Plus/xmb_productivity.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8Plus/xmb_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8Plus/xmb_settings.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8Plus/xmb_social.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8Plus/xmb_social.png
--------------------------------------------------------------------------------
/Media/GalaxyTabS8Plus/xmb_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/GalaxyTabS8Plus/xmb_video.png
--------------------------------------------------------------------------------
/Media/Old/file_explorer_context_portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/file_explorer_context_portrait.png
--------------------------------------------------------------------------------
/Media/Old/xmb_add_app_to_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_add_app_to_home.png
--------------------------------------------------------------------------------
/Media/Old/xmb_audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_audio.png
--------------------------------------------------------------------------------
/Media/Old/xmb_audio_portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_audio_portrait.png
--------------------------------------------------------------------------------
/Media/Old/xmb_explorer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_explorer.png
--------------------------------------------------------------------------------
/Media/Old/xmb_explorer_crop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_explorer_crop.png
--------------------------------------------------------------------------------
/Media/Old/xmb_explorer_portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_explorer_portrait.png
--------------------------------------------------------------------------------
/Media/Old/xmb_games.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_games.png
--------------------------------------------------------------------------------
/Media/Old/xmb_games_portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_games_portrait.png
--------------------------------------------------------------------------------
/Media/Old/xmb_other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_other.png
--------------------------------------------------------------------------------
/Media/Old/xmb_productivity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_productivity.png
--------------------------------------------------------------------------------
/Media/Old/xmb_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_settings.png
--------------------------------------------------------------------------------
/Media/Old/xmb_social.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_social.png
--------------------------------------------------------------------------------
/Media/Old/xmb_social_portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_social_portrait.png
--------------------------------------------------------------------------------
/Media/Old/xmb_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_video.png
--------------------------------------------------------------------------------
/Media/Old/xmb_video_portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Media/Old/xmb_video_portrait.png
--------------------------------------------------------------------------------
/Play Store Listing.txt:
--------------------------------------------------------------------------------
1 | Introducing Ox Shell for Android, a sleek and intuitive home screen experience inspired by the iconic look of a classic video game system. With Ox Shell, you can enjoy easy access to all your favorite apps and games, all while enjoying a visually stunning interface that's sure to impress.
2 |
3 | -- XMB --
4 | Ox Shell features a horizontal scrolling menu that allows you to quickly navigate through your apps and games. You can easily customize your home screen with your favorite apps and emulators, and the launcher's intuitive design ensures that everything is easy to find and access.
5 |
6 | -- Gamepad Support --
7 | One of the core features of Ox Shell is its ability to be navigated through with a gamepad. You can even open the app switcher using a gamepad (accessibility permission must be enabled for this feature). The launcher also supports intuitive touch controls.
8 |
9 | -- Live Wallpaper --
10 | Ox Shell can be used as a live wallpaper service. It allows you to pick from a couple of built-in options or even to set up your own shaders as your device's background. On top of that Ox Shell also doubles as a file explorer. Allowing you to copy, cut, rename files, and more.
11 |
12 | -- File Browser --
13 | Another core feature of Ox Shell is that it is also a file browser. Ox Shell helps you manage your files by giving you the ability to copy, cut, paste, rename, and delete nearly any file you'd like. You can also launch files into their respective apps if you have created an association for them. Ox Shell comes built-in with associations for images, video, and audio. The file browser also lets you easily install any apk on your device.
14 |
15 | -- Associations --
16 | Ox Shell gives you the ability to create associations for different file types. Using these associations, you can add a list of launchables directly to your home menu. In essence this allows Ox Shell to be an emulation front end and more.
17 |
18 | -- Music Player --
19 | The music player in Ox Shell is fully functional. Add any folder from your file system to your home menu and Ox Shell will automatically sort them by artist then album. Ox Shell supports playback controls through the notification center. On top of that, Ox Shell supports customizable shortcuts to control music playback.
20 |
21 | -- Video Player --
22 | Similar to the music player, Ox Shell is capable of playing videos directly from your home menu. Simply add a folder from your file system to your home menu and watch your media to your heart's content. You can also play videos directly from the file browser or even from a separate app.
23 |
24 | So if you're looking for a home screen experience that's both beautiful and functional, Ox Shell is the perfect choice. With its sleek design, customizable options, and powerful performance, it's the perfect way to take your Android experience to the next level.
25 |
26 | You can build Ox Shell yourself using the github project at https://github.com/oxters168/OxShell
27 |
--------------------------------------------------------------------------------
/PrivacyPolicy/README.md:
--------------------------------------------------------------------------------
1 | # Privacy Policy for Ox Shell
2 | Last Updated: Jan. 24, 2024
3 |
4 | Ox Shell is committed to protecting the privacy of its users.
5 | This Privacy Policy outlines the types of information that Ox Shell does not collect.
6 |
7 | ## Information We Do Not Collect:
8 | - Personal Information: We do not collect any personally identifiable information, such as names, addresses, phone numbers, or email addresses.
9 | - Location Information: We do not track or store your location information.
10 | - Device Information: We do not collect any information about the device you are using, including device type, operating system, or device identifiers.
11 | - Usage Data: We do not collect data on how you use the app, including interactions, preferences, or any other usage patterns.
12 |
13 | ## How We Use Information:
14 | Since we do not collect any information, we do not use any data for any purpose.
15 |
16 | ## Third-Party Services:
17 | Ox Shell does not use any third-party services or tools that may collect information about you.
18 | ## Changes to this Privacy Policy:
19 | We reserve the right to update this Privacy Policy at any time. Any changes will be effective immediately upon the posting of the revised Privacy Policy.
20 | ## Contact Us:
21 | If you have any questions or concerns about this Privacy Policy, please contact us at contact@oxgames.co.
22 |
23 | By using Ox Shell, you signify your consent to this Privacy Policy. If you do not agree to this Privacy Policy, please do not use the app.
24 | Thank you for using Ox Shell!
25 |
26 | (Generated by ChatGPT 3.5)
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # About Ox Shell
2 |
3 | Ox Shell is a launcher for android. It is an attempt to recreate the feel of a classic video game system.
4 |
5 |
6 | 
7 |
8 |
9 |
10 | ## Features
11 |
12 | - [x] Controller support
13 | - [x] Live wallpaper service
14 | - [x] Built in file explorer
15 | - [x] Launch roms directly into emulators that support it
16 | - [x] Create custom associations for roms and other files
17 | - [x] Install and uninstall apps
18 | - [x] Customizable home menu
19 | - [x] Customizable controls
20 | - [x] Use home/recent apps/etc through controller from anywhere
21 | - [ ] Add compression/extraction options to file explorer
22 | - [x] Show prompt before deleting files in file explorer
23 | - [ ] Show which files are in the copy/cut clipboard
24 | - [ ] Show any file operation errors
25 | - [ ] Show progress of file operations
26 | - [ ] Add ftp support to file explorer
27 | - [ ] Add start menu to file explorer that lists locations and is customizable
28 | - [ ] Add more default associations
29 | - [x] Make default generic associations (image/video/audio)
30 | - [ ] Make a chooser in the create association menu to pick a template from the defaults
31 | - [ ] Add more default shaders
32 | - [x] Add UI scale option
33 | - [x] Add text scale option
34 | - [ ] Add setting to choose typeface
35 | - [x] Optimize home menu performance
36 | - [ ] Remember where user was in the home menu when coming back
37 | - [ ] Make it possible to choose a default association for an extension if more than one exists
38 | - [ ] Make it possible to pick which association to launch a file with when multiple exist for it
39 | - [ ] Add gyro/accelerometer support to shaders
40 | - [ ] Support ability to have multiple shader files
41 | - [ ] Make it possible to set values of variables when setting shader as background if the shader has any to be set
42 | - [ ] Add ability to write a shader directly in app with the ability to preview
43 | - [x] Add a video player
44 | - [x] Add a music player
45 | - [ ] Add a photo viewer
46 | - [ ] Make it possible to set the rect of the background image chosen when user setting wallpaper to image
47 | - [ ] Add a web browser
48 |
49 | It'll likely take time for these features to reach, as I am just one developer.
50 | Please consider supporting this project by purchasing it on the store.
51 |
52 |
53 |
54 | # Build for Yourself
55 | - Clone the project or download the zip using the green code button above.
56 | - Open Android Studio and browse to the directory you cloned/downloaded to and select it.
57 |
58 | Creating a debug variant
59 |
60 | * Make sure the build variant selected is debug
61 | * Run it!
62 |
63 | Creating a release variant
64 |
65 | * Add your keystore file in the `app/keystores` folder
66 | * Create a `keystore.properties` file in the `app/keystores` folder with the following contents:
67 | ```
68 | storeFile keystores/[keystore-filename]
69 | storePassword [store-password]
70 | keyAlias [key-alias]
71 | keyPassword [key-password]
72 | ```
73 | * Set your build variant to release
74 | * Run it!
75 |
76 |
--------------------------------------------------------------------------------
/Sounds/xmb_music/xmb_musac (by suzan).mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_music/xmb_musac (by suzan).mp3
--------------------------------------------------------------------------------
/Sounds/xmb_music/xmb_musac (by suzan, normalized and cut).mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_music/xmb_musac (by suzan, normalized and cut).mp3
--------------------------------------------------------------------------------
/Sounds/xmb_music/xmb_music.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_music/xmb_music.mp3
--------------------------------------------------------------------------------
/Sounds/xmb_music/xmb_music.sunvox:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_music/xmb_music.sunvox
--------------------------------------------------------------------------------
/Sounds/xmb_shift/bass05_C3.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/bass05_C3.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/bass12_C5.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/bass12_C5.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/bd04_C6.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/bd04_C6.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/bd06_C6.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/bd06_C6.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/bd09_C6.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/bd09_C6.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/bd12_C6.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/bd12_C6.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/brokk_G5.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/brokk_G5.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/cow_G7.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/cow_G7.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/fm_bass1_C5.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/fm_bass1_C5.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/fm_bass_C4.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/fm_bass_C4.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/hihat01_d6.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/hihat01_d6.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/hihat02_A7.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/hihat02_A7.wav
--------------------------------------------------------------------------------
/Sounds/xmb_shift/xmb_shift_sounds.sunvox:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/Sounds/xmb_shift/xmb_shift_sounds.sunvox
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/app/keystores/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/keystores/.gitkeep
--------------------------------------------------------------------------------
/app/libs/gson-2.9.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/libs/gson-2.9.0.jar
--------------------------------------------------------------------------------
/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 |
23 | # Did not work for minify
24 | #-dontwarn sun.reflect.**
--------------------------------------------------------------------------------
/app/src/main/assets/Audio/cow_G7.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Audio/cow_G7.wav
--------------------------------------------------------------------------------
/app/src/main/assets/Audio/xmb_musac.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Audio/xmb_musac.mp3
--------------------------------------------------------------------------------
/app/src/main/assets/Audio/xmb_music.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Audio/xmb_music.mp3
--------------------------------------------------------------------------------
/app/src/main/assets/Fonts/exo.regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Fonts/exo.regular.otf
--------------------------------------------------------------------------------
/app/src/main/assets/Fonts/src.txt:
--------------------------------------------------------------------------------
1 | https://www.1001fonts.com/exo-font.html
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_a.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_b.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_c.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_dpad_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_dpad_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_dpad_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_dpad_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_dpad_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_dpad_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_dpad_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_dpad_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_empty.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_l1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_l1.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_l2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_l2.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_lstick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_lstick.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_r1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_r1.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_r2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_r2.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_rstick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_rstick.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_select.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_start.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_x.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_y.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_y.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_gen_z.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_gen_z.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_0.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_1.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_2.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_3.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_4.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_5.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_6.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_7.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_8.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_9.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_a.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_alt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_alt.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_apostrophe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_apostrophe.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_arrow_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_arrow_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_arrow_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_arrow_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_arrow_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_b.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_backspace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_backspace.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_bslash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_bslash.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_c.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_close_bracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_close_bracket.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_comma.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_comma.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_ctrl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_ctrl.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_d.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_dash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_dash.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_del.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_del.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_e.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_empty.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_enter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_enter.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_equal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_equal.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_esc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_esc.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f1.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f10.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f11.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f12.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f2.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f3.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f4.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f5.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f6.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f7.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f8.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_f9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_f9.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_fslash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_fslash.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_g.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_grave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_grave.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_h.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_i.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_i.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_j.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_j.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_k.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_l.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_lalt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_lalt.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_lctrl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_lctrl.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_lshift.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_lshift.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_m.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_n.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_o.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_o.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_open_bracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_open_bracket.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_p.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_p.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_period.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_period.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_q.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_q.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_r.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_ralt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_ralt.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_rctrl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_rctrl.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_rshift.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_rshift.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_s.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_semicolon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_semicolon.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_shift.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_shift.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_space.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_space.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_super.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_super.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_t.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_t.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_tab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_tab.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_u.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_u.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_v.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_v.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_w.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_x.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_y.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_y.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_kb_z.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_kb_z.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_circle.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_cross.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_dpad_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_dpad_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_dpad_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_dpad_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_dpad_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_dpad_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_dpad_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_dpad_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_home.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_l1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_l1.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_l2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_l2.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_lstick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_lstick.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_lstick_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_lstick_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_lstick_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_lstick_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_lstick_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_lstick_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_lstick_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_lstick_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_options.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_r1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_r1.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_r2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_r2.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_rstick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_rstick.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_rstick_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_rstick_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_rstick_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_rstick_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_rstick_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_rstick_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_rstick_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_rstick_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_share.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_square.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_ps_triangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_ps_triangle.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_a.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_b.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_dpad_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_dpad_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_dpad_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_dpad_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_dpad_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_dpad_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_dpad_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_dpad_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_home.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_l.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_lstick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_lstick.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_lstick_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_lstick_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_lstick_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_lstick_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_lstick_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_lstick_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_lstick_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_lstick_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_minus.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_plus.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_r.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_rstick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_rstick.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_rstick_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_rstick_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_rstick_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_rstick_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_rstick_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_rstick_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_rstick_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_rstick_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_screenshot.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_x.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_y.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_y.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_zl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_zl.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_switch_zr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_switch_zr.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_touch_down_hold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_touch_down_hold.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_touch_drag_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_touch_drag_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_touch_drag_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_touch_drag_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_touch_drag_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_touch_drag_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_touch_drag_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_touch_drag_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_touch_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_touch_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_a.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_b.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_dpad_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_dpad_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_dpad_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_dpad_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_dpad_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_dpad_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_dpad_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_dpad_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_home.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_lb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_lb.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_lstick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_lstick.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_lstick_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_lstick_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_lstick_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_lstick_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_lstick_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_lstick_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_lstick_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_lstick_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_lt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_lt.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_menu.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_rb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_rb.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_rstick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_rstick.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_rstick_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_rstick_down.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_rstick_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_rstick_left.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_rstick_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_rstick_right.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_rstick_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_rstick_up.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_rt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_rt.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_view.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_x.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/asset_xbox_y.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Image/inputs/asset_xbox_y.png
--------------------------------------------------------------------------------
/app/src/main/assets/Image/inputs/src.txt:
--------------------------------------------------------------------------------
1 | Purchased from:
2 | https://justfredrik.itch.io/controllers-n-buttons
3 |
--------------------------------------------------------------------------------
/app/src/main/assets/Shaders/blue_dune.fsh:
--------------------------------------------------------------------------------
1 | #version 300 es
2 |
3 | precision highp float;
4 |
5 | uniform float iTime;
6 | uniform vec3 iResolution;
7 |
8 | in vec2 textureCoord;
9 | out vec4 fragColor;
10 |
11 | vec3 lerp(vec3 color1, vec3 color2, float value)
12 | {
13 | return value * (color2 - color1) + color1;
14 | }
15 | float wave(float x, float frequency, float speed, float midHeight, float maxHeight)
16 | {
17 | return (sin(frequency * (x + speed * (((1. - (pow(cos(0.002 * (iTime + 400.)), 2.) + 1.) / 2.) + .1) * 2048.))) * (maxHeight - midHeight)) + midHeight;
18 | //return (sin(frequency * (x + speed * iTime)) * (maxHeight - midHeight)) + midHeight;
19 | }
20 | float percentHigh(float currentY, float waveHeight, float maxHeight, float power)
21 | {
22 | float percentWave = max(waveHeight - currentY, 0.0) / maxHeight;
23 | return pow(1.0 - percentWave, power);
24 | }
25 | float waveColor(vec2 uv, float waveHeight, float maxHeight, float frequency, float power)
26 | {
27 | float percentWave = percentHigh(uv.y, waveHeight, maxHeight, power);
28 | return clamp(percentWave + 0.8, 0.0, 1.0);
29 | }
30 |
31 | void main() {
32 | // Normalized pixel coordinates (from 0 to 1)
33 | vec2 uv = textureCoord;
34 |
35 | // Lerped background
36 | vec3 blue = vec3(0.0, 0.4, 1.0);
37 | vec3 blue2 = vec3(0.0, 0.7, 1.0);
38 | float amount = (uv.x + uv.y) / 2.0;
39 | vec3 bg = lerp(blue2, blue, amount);
40 |
41 | // Overlayed sine waves
42 | float midHeight1 = 0.6;
43 | float maxHeight1 = 0.7 + wave(0.0, 4.0, 0.02, 0.0, 0.02);
44 | float power1 = 50.0; //Higher power means thinner line
45 | float frequency1 = 2.0 + wave(0.0, 3.0, 0.03, 0.0, 0.02);
46 | float speed1 = 0.12 + wave(0.0, 2.2, 0.04, 0.0, 0.01);
47 | float waveHeight1 = wave(uv.x, frequency1, speed1, midHeight1, maxHeight1);
48 | float waveCol1 = waveColor(uv, waveHeight1, maxHeight1, frequency1, power1);
49 |
50 | float midHeight2 = 0.62;
51 | float maxHeight2 = 0.74 + wave(0.0, 3.0, 0.04, 0.0, 0.02);
52 | float power2 = 50.0; //Higher power means thinner line
53 | float frequency2 = 2.1 + wave(0.0, 4.0, 0.05, 0.0, 0.02);
54 | float speed2 = 0.08 + wave(0.0, 2.0, 0.02, 0.0, 0.01);
55 | float waveHeight2 = wave(uv.x, frequency2, speed2, midHeight2, maxHeight2);
56 | float waveCol2 = waveColor(uv, waveHeight2, maxHeight2, frequency2, power2);
57 |
58 | vec3 col = bg;
59 | if (uv.y < waveHeight1)
60 | col = waveCol1 * col;
61 | if (uv.y < waveHeight2)
62 | col = waveCol2 * col;
63 |
64 | // Output to screen
65 | fragColor = vec4(col,1.0);
66 | }
--------------------------------------------------------------------------------
/app/src/main/assets/Shaders/channel0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Shaders/channel0.png
--------------------------------------------------------------------------------
/app/src/main/assets/Shaders/channel1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Shaders/channel1.png
--------------------------------------------------------------------------------
/app/src/main/assets/Shaders/channel2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Shaders/channel2.png
--------------------------------------------------------------------------------
/app/src/main/assets/Shaders/channel3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/assets/Shaders/channel3.png
--------------------------------------------------------------------------------
/app/src/main/assets/Shaders/fallback.fsh:
--------------------------------------------------------------------------------
1 | #version 300 es
2 | precision highp float;
3 | uniform float iTime;
4 | uniform vec2 iResolution;
5 | in vec2 textureCoord;
6 | out vec4 fragColor;
7 | void main() // The entry point for our fragment shader.
8 | {
9 | float loop = sin(mod(iTime / 2., 3.14));
10 | vec3 col = vec3(vec2(1) - textureCoord.xy, (textureCoord.x + textureCoord.y) / 2.);
11 | fragColor = vec4(abs(vec3(loop) - col.xyz), 1); // Pass the color directly through the pipeline.
12 | }
--------------------------------------------------------------------------------
/app/src/main/assets/Shaders/smooth_cheese.fsh:
--------------------------------------------------------------------------------
1 | #version 300 es
2 |
3 | /*
4 | * Title: Smooth Cheese
5 | * Author: Bassel EL Mabsout
6 | * SIMPLEX noise implementation taken from:
7 | * https://www.shadertoy.com/view/XsX3zB
8 | *
9 | * The MIT License
10 | * Copyright © 2013 Nikita Miropolskiy
11 | *
12 | * ( license has been changed from CCA-NC-SA 3.0 to MIT
13 | *
14 | * but thanks for attributing your source code when deriving from this sample
15 | * with a following link: https://www.shadertoy.com/view/XsX3zB )
16 | */
17 |
18 | precision highp float;
19 |
20 | uniform float iTime;
21 | uniform vec3 iResolution;
22 |
23 | in vec2 textureCoord;
24 | out vec4 fragColor;
25 |
26 | /* discontinuous pseudorandom uniformly distributed in [-0.5, +0.5]^3 */
27 | vec3 random3(vec3 c) {
28 | float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
29 | vec3 r;
30 | r.z = fract(512.0*j);
31 | j *= .125;
32 | r.x = fract(512.0*j);
33 | j *= .125;
34 | r.y = fract(512.0*j);
35 | return r-0.5;
36 | }
37 |
38 | /* skew constants for 3d simplex functions */
39 | const float F3 = 0.3333333;
40 | const float G3 = 0.1666667;
41 |
42 | /* 3d simplex noise */
43 | float simplex3d(vec3 p) {
44 | /* 1. find current tetrahedron T and it's four vertices */
45 | /* s, s+i1, s+i2, s+1.0 - absolute skewed (integer) coordinates of T vertices */
46 | /* x, x1, x2, x3 - unskewed coordinates of p relative to each of T vertices*/
47 | /* calculate s and x */
48 | vec3 s = floor(p + dot(p, vec3(F3)));
49 | vec3 x = p - s + dot(s, vec3(G3));
50 |
51 | /* calculate i1 and i2 */
52 | vec3 e = step(vec3(0.0), x - x.yzx);
53 | vec3 i1 = e*(1.0 - e.zxy);
54 | vec3 i2 = 1.0 - e.zxy*(1.0 - e);
55 |
56 | /* x1, x2, x3 */
57 | vec3 x1 = x - i1 + G3;
58 | vec3 x2 = x - i2 + 2.0*G3;
59 | vec3 x3 = x - 1.0 + 3.0*G3;
60 |
61 | /* 2. find four surflets and store them in d */
62 | vec4 w, d;
63 |
64 | /* calculate surflet weights */
65 | w.x = dot(x, x);
66 | w.y = dot(x1, x1);
67 | w.z = dot(x2, x2);
68 | w.w = dot(x3, x3);
69 |
70 | /* w fades from 0.6 at the center of the surflet to 0.0 at the margin */
71 | w = max(0.6 - w, 0.0);
72 |
73 | /* calculate surflet components */
74 | d.x = dot(random3(s), x);
75 | d.y = dot(random3(s + i1), x1);
76 | d.z = dot(random3(s + i2), x2);
77 | d.w = dot(random3(s + 1.0), x3);
78 |
79 | /* multiply d by w^4 */
80 | w *= w;
81 | w *= w;
82 | d *= w;
83 |
84 | /* 3. return the sum of the four surflets */
85 | return dot(d, vec4(52.0));
86 | }
87 |
88 | void main()
89 | {
90 | vec2 p = textureCoord;
91 | vec3 p3 = vec3(p, iTime*0.015)+vec3(iTime*0.015,0.0,0.0);
92 |
93 | float value = pow(abs(simplex3d(p3*2.0)),1.5);
94 | float red = 0.5 + 0.5*simplex3d(p3*2.0 + 38274.9);
95 | float green = abs(0.2+0.5*simplex3d(p3*2.0 + 3824.9));
96 | float blue = abs(simplex3d(p3*2.0 + 98274.9));
97 |
98 | fragColor = vec4(sqrt(value*vec3(red, green, blue)), 1.0);
99 | }
100 |
--------------------------------------------------------------------------------
/app/src/main/assets/Shaders/vert.vsh:
--------------------------------------------------------------------------------
1 | #version 300 es
2 |
3 | uniform mat4 uMVPMatrix;
4 | uniform mat4 uSTMatrix;
5 |
6 | in vec3 inPosition;
7 | in vec2 inTextureCoord;
8 |
9 | out vec2 textureCoord;
10 | out float iTime;
11 |
12 | void main() {
13 | gl_Position = uMVPMatrix * vec4(inPosition.xyz, 1);
14 | textureCoord = (uSTMatrix * vec4(vec2(inTextureCoord.x, 1. - inTextureCoord.y), 0, 0)).xy;
15 | }
--------------------------------------------------------------------------------
/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Adapters/DynamicInputAdapter.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Adapters;
2 |
3 | import android.content.Context;
4 | import android.view.View;
5 | import android.view.ViewGroup;
6 | import android.widget.FrameLayout;
7 |
8 | import androidx.annotation.NonNull;
9 | import androidx.recyclerview.widget.RecyclerView;
10 |
11 | import com.OxGames.OxShell.Data.DynamicInputRow;
12 | import com.OxGames.OxShell.Helpers.AndroidHelpers;
13 | import com.OxGames.OxShell.Interfaces.AdapterListener;
14 | import com.OxGames.OxShell.Views.DynamicInputRowView;
15 |
16 | import java.util.ArrayList;
17 | import java.util.Arrays;
18 | import java.util.List;
19 |
20 | public class DynamicInputAdapter extends RecyclerView.Adapter {
21 | private List items;
22 | private Context context;
23 | private List listeners;
24 |
25 | public DynamicInputAdapter(Context context, DynamicInputRow... items) {
26 | this.context = context;
27 | this.items = new ArrayList();
28 | if (items != null)
29 | this.items.addAll(Arrays.asList(items));
30 | listeners = new ArrayList<>();
31 | }
32 |
33 | public void addListener(AdapterListener listener) {
34 | listeners.add(listener);
35 | }
36 | public void removeListener(AdapterListener listener) {
37 | listeners.remove(listener);
38 | }
39 | public void clearListeners() {
40 | listeners.clear();
41 | }
42 |
43 | @NonNull
44 | @Override
45 | public DynamicViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
46 | DynamicInputRowView view = new DynamicInputRowView(context);
47 | view.setFocusable(false);
48 | view.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
49 | return new DynamicViewHolder(view);
50 | }
51 |
52 | @Override
53 | public void onBindViewHolder(@NonNull DynamicViewHolder holder, int position) {
54 | holder.bindItem(items.get(position));
55 | int dip = Math.round(AndroidHelpers.getScaledDpToPixels(context, 20));
56 | holder.setPadding(0, 0, 0, position < items.size() - 1 ? dip : 0);
57 | }
58 |
59 | @Override
60 | public int getItemCount() {
61 | return items.size();
62 | }
63 |
64 | @Override
65 | public void onViewAttachedToWindow(@NonNull DynamicViewHolder holder) {
66 | super.onViewAttachedToWindow(holder);
67 | //Log.d("DynamicInputAdapter", "onViewAttachedToWindow");
68 | for (AdapterListener listener : listeners)
69 | if (listener != null)
70 | listener.onViewsReady();
71 | }
72 |
73 | public void clear() {
74 | if (items != null)
75 | items.clear();
76 | }
77 |
78 | public static class DynamicViewHolder extends RecyclerView.ViewHolder {
79 | public DynamicViewHolder(@NonNull View itemView) {
80 | super(itemView);
81 | }
82 | public void bindItem(DynamicInputRow item) {
83 | ((DynamicInputRowView)itemView).setInputItems(item);
84 | }
85 | public void setPadding(int left, int top, int right, int bottom) {
86 | itemView.setPadding(left, top, right, bottom);
87 | }
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Adapters/GridAdapter.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Adapters;
2 |
3 | import android.database.DataSetObserver;
4 | import android.graphics.Color;
5 | import android.view.LayoutInflater;
6 | import android.widget.BaseAdapter;
7 | import android.content.Context;
8 | import android.view.View;
9 | import android.view.ViewGroup;
10 | import android.widget.ImageView;
11 | import android.widget.TextView;
12 |
13 | import com.OxGames.OxShell.Data.GridItem;
14 | import com.OxGames.OxShell.R;
15 |
16 | import java.util.ArrayList;
17 |
18 | public class GridAdapter extends BaseAdapter {
19 | private final Context context;
20 | private final ArrayList homeItems;
21 |
22 | public GridAdapter(Context _context, ArrayList _homeItems) {
23 | context = _context;
24 | homeItems = _homeItems;
25 | }
26 |
27 | @Override
28 | public View getView(int position, View view, ViewGroup parent) {
29 | GridItem homeItem = homeItems.get(position);
30 | if (view == null) {
31 | LayoutInflater layoutInflater = LayoutInflater.from(context);
32 | view = layoutInflater.inflate(R.layout.xmb_item, null);
33 | }
34 |
35 | view.setBackgroundColor(homeItem.isSelected ? Color.parseColor("#33EAF0CE") : Color.parseColor("#00000000")); //TODO: implement color theme that can take custom theme from file
36 |
37 | TextView title = view.findViewById(R.id.cat_title);
38 | title.setText(homeItem.title);
39 |
40 | ImageView typeIcon = view.findViewById(R.id.typeIcon);
41 | typeIcon.setImageDrawable(homeItem.getIcon());
42 |
43 | ImageView typeSuperIcon = view.findViewById(R.id.typeSuperIcon);
44 | typeSuperIcon.setImageDrawable(homeItem.getSuperIcon());
45 |
46 | //int[] loc = new int[2];
47 | //view.getLocationInWindow(loc);
48 | //view.getLocationOnScreen(loc);
49 | // int x = AndroidHelpers.getRelativeLeft(view);
50 | // int y = AndroidHelpers.getRelativeTop(view);
51 | // int width = view.getWidth();
52 | // int height = view.getHeight();
53 | // homeItem.dim = new Rect(x, y, x + width, y + height);
54 |
55 | return view;
56 | }
57 | @Override
58 | public boolean areAllItemsEnabled() {
59 | return false;
60 | }
61 | @Override
62 | public boolean isEnabled(int position) {
63 | return true;
64 | }
65 | @Override
66 | public void registerDataSetObserver(DataSetObserver observer) { }
67 | @Override
68 | public void unregisterDataSetObserver(DataSetObserver observer) { }
69 | @Override
70 | public int getCount() {
71 | return homeItems.size();
72 | }
73 | @Override
74 | public long getItemId(int position) {
75 | return position;
76 | }
77 | @Override
78 | public Object getItem(int position) {
79 | return homeItems.get(position);
80 | }
81 | @Override
82 | public boolean hasStableIds() {
83 | return false;
84 | }
85 | @Override
86 | public int getItemViewType(int position) {
87 | return 0;
88 | }
89 | @Override
90 | public int getViewTypeCount() {
91 | return homeItems.size();
92 | }
93 | @Override
94 | public boolean isEmpty() {
95 | return homeItems.size() <= 0;
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Data/DataLocation.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Data;
2 |
3 | public enum DataLocation {
4 | none, resource, asset, pkg, file, resolverUri, self,
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Data/DetailItem.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Data;
2 |
3 | import android.graphics.drawable.Drawable;
4 |
5 | public class DetailItem {
6 | public Object obj; //object
7 | public String leftAlignedText; //string
8 | public String rightAlignedText;
9 | public Drawable icon; //stay
10 | public boolean isCurrentItem;
11 | public boolean isSelected;
12 |
13 | public DetailItem(Drawable _icon, String _leftAlignedText, String _rightAlignedText, Object _obj) {
14 | icon = _icon;
15 | obj = _obj;
16 | leftAlignedText = _leftAlignedText;
17 | rightAlignedText = _rightAlignedText;
18 | }
19 | public boolean hasIcon() {
20 | return icon != null;
21 | }
22 | public Drawable getIcon() {
23 | return icon;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Data/Executable.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Data;
2 |
3 | import android.util.Log;
4 |
5 | import java.io.Serializable;
6 | import java.util.UUID;
7 |
8 | public class Executable implements Serializable {
9 | private UUID launchDataRef;
10 | private String path;
11 |
12 | public Executable(UUID launchDataRef, String path) {
13 | this.launchDataRef = launchDataRef;
14 | this.path = path;
15 | }
16 | public void run() {
17 | IntentLaunchData launcher = getLaunchIntent();
18 | if (launcher != null) {
19 | //if (PackagesCache.isPackageInstalled(launcher.getPackageName()))
20 | launcher.launch(path);
21 | //else
22 | // Log.e("IntentShortcutsView", "Failed to launch, " + launcher.getPackageName() + " is not installed on the device");
23 | } else
24 | Log.e("IntentShortcutsView", "Failed to launch, launch intent (" + launchDataRef + ") not found");
25 | }
26 | public IntentLaunchData getLaunchIntent() {
27 | return ShortcutsCache.getIntent(launchDataRef);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Data/FontRef.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Data;
2 |
3 | import org.nustaq.serialization.FSTBasicObjectSerializer;
4 | import org.nustaq.serialization.FSTClazzInfo;
5 | import org.nustaq.serialization.FSTObjectInput;
6 | import org.nustaq.serialization.FSTObjectOutput;
7 |
8 | import java.io.IOException;
9 | import java.io.Serializable;
10 |
11 | // do not use this class, this is just for older versions of the app
12 | public class FontRef implements Serializable {
13 | public DataLocation dataType;
14 | public Object fontLoc;
15 |
16 | // public static class FontRefSerializer extends FSTBasicObjectSerializer {
17 | // @Override
18 | // public boolean willHandleClass(Class cl) {
19 | // return cl.equals(FontRef.class);
20 | // }
21 | // @Override
22 | // public void writeObject(FSTObjectOutput out, Object toWrite, FSTClazzInfo clzInfo, FSTClazzInfo.FSTFieldInfo referencedBy, int streamPosition) throws IOException {
23 | // FontRef fontRef = (FontRef)toWrite;
24 | // out.writeObject(fontRef.dataType);
25 | // out.writeObject(fontRef.fontLoc);
26 | // }
27 | // @Override
28 | // public Object instantiate(Class objectClass, FSTObjectInput in, FSTClazzInfo serializationInfo, FSTClazzInfo.FSTFieldInfo referencee, int streamPosition) throws Exception {
29 | // // Map the old fully qualified class name to the new one
30 | // String className = objectClass.getName().replace("FontRef", "DataRef");
31 | // Class> newClass = Class.forName(className);
32 | //
33 | // // Deserialize the object using the new class
34 | // DataLocation locType = (DataLocation)in.readObject();
35 | // Object loc = in.readObject();
36 | // return newClass.getConstructor(Object.class, DataLocation.class).newInstance(loc, locType);
37 | // }
38 | // }
39 | }
40 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Data/GridItem.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Data;
2 |
3 | import android.graphics.Rect;
4 | import android.graphics.drawable.Drawable;
5 | import android.view.View;
6 |
7 | import java.io.Serializable;
8 |
9 | public class GridItem implements Serializable {
10 | public String title;
11 | public Object obj;
12 | public transient View view;
13 | public transient boolean isSelected;
14 | //protected transient boolean breaker;
15 | //public transient Rect dim;
16 |
17 | public GridItem(String _title, Object _obj) {
18 | title = _title;
19 | obj = _obj;
20 | }
21 | public Drawable getIcon() {
22 | return null;
23 | }
24 | public Drawable getSuperIcon() {
25 | return null;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Data/ImageRef.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Data;
2 |
3 | import android.util.Log;
4 |
5 | import org.nustaq.serialization.FSTBasicObjectSerializer;
6 | import org.nustaq.serialization.FSTClazzInfo;
7 | import org.nustaq.serialization.FSTObjectInput;
8 | import org.nustaq.serialization.FSTObjectOutput;
9 |
10 | import java.io.IOException;
11 | import java.io.Serializable;
12 |
13 | // do not use this class, this is just for older versions of the app
14 | public class ImageRef implements Serializable {
15 | public DataLocation dataType;
16 | public Object imageLoc;
17 |
18 | // public static class ImageRefSerializer extends FSTBasicObjectSerializer {
19 | // @Override
20 | // public boolean willHandleClass(Class cl) {
21 | // return cl.equals(ImageRef.class);
22 | // }
23 | // @Override
24 | // public void writeObject(FSTObjectOutput out, Object toWrite, FSTClazzInfo clzInfo, FSTClazzInfo.FSTFieldInfo referencedBy, int streamPosition) throws IOException {
25 | // ImageRef imageRef = (ImageRef)toWrite;
26 | // out.writeObject(imageRef.dataType);
27 | // out.writeObject(imageRef.imageLoc);
28 | // }
29 | // @Override
30 | // public void readObject(FSTObjectInput in, Object toRead, FSTClazzInfo clzInfo, FSTClazzInfo.FSTFieldInfo referencedBy) throws Exception {
31 | // //super.readObject(in, toRead, clzInfo, referencedBy);
32 | // }
33 | // @Override
34 | // public Object instantiate(Class objectClass, FSTObjectInput in, FSTClazzInfo serializationInfo, FSTClazzInfo.FSTFieldInfo referencee, int streamPosition) throws Exception {
35 | //// // Map the old fully qualified class name to the new one
36 | //// //String className = objectClass.getName().replace("ImageRef", "DataRef");
37 | //// //Class> newClass = Class.forName(className);
38 | //// Log.d("ImageRef", referencee.getName());
39 | ////
40 | //// // Deserialize the object using the new class
41 | ////// Log.d("ImageRef", "Reading locType");
42 | ////// DataLocation locType = (DataLocation)in.readObjectInternal(DataLocation.class);
43 | ////// Log.d("ImageRef", "Reading loc");
44 | ////// Object loc = in.readObjectInternal(null);
45 | //// Log.d("ImageRef", "Reading String");
46 | //// String fieldName = in.readStringUTF();
47 | //// Log.d("ImageRef", "Field name " + fieldName);
48 | //// in.registerObject(fieldName, streamPosition, serializationInfo, referencee);
49 | //// Log.d("ImageRef", "Reading locType");
50 | //// DataLocation locType = (DataLocation)in.readObjectInternal(DataLocation.class);
51 | //// Log.d("ImageRef", "Reading String");
52 | //// fieldName = in.readStringUTF();
53 | //// Log.d("ImageRef", "Field name " + fieldName);
54 | //// in.registerObject(fieldName, streamPosition, serializationInfo, referencee);
55 | //// Log.d("ImageRef", "Reading loc");
56 | //// Object loc = in.readObjectInternal(null);
57 | //// //in.registerObject(loc, streamPosition, serializationInfo, referencee);
58 | //// //return newClass.getConstructor(Object.class, DataLocation.class).newInstance(loc, locType);
59 | //// //return newClass.getMethod("from", Object.class, DataLocation.class).invoke(null, loc, locType);
60 | //// return DataRef.from(loc, locType);
61 | //// ImageRef imgRef = (ImageRef)super.instantiate(objectClass, in, serializationInfo, referencee, streamPosition);
62 | //// return imgRef != null ? DataRef.from(imgRef.imageLoc, imgRef.dataType) : null;
63 | // //return new DataRef();
64 | // }
65 | // }
66 | }
67 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Data/InputType.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Data;
2 |
3 | public enum InputType {
4 | None, Touch, Keyboard, Playstation, Xbox, Switch
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Data/IntentPutExtra.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Data;
2 |
3 | import android.content.Intent;
4 | import android.util.Log;
5 |
6 | import java.io.Serializable;
7 |
8 | public class IntentPutExtra implements Serializable {
9 | private IntentLaunchData.DataType extraType;
10 | private String name;
11 | private Object value;
12 |
13 | public IntentPutExtra(String _name, Object _value, IntentLaunchData.DataType type) {
14 | Log.d("IntentPutExtra", _value + " is " + type);
15 | extraType = type;
16 | name = _name;
17 | value = _value;
18 | }
19 | public IntentPutExtra(String _name, int _value) {
20 | this(_name, _value, IntentLaunchData.DataType.Integer);
21 | }
22 | public IntentPutExtra(String _name, boolean _value) {
23 | this(_name, _value, IntentLaunchData.DataType.Boolean);
24 | }
25 | public IntentPutExtra(String _name, float _value) {
26 | this(_name, _value, IntentLaunchData.DataType.Float);
27 | }
28 | public IntentPutExtra(String _name, String _value) {
29 | this(_name, _value, IntentLaunchData.DataType.String);
30 | }
31 | public IntentPutExtra(String _name, IntentLaunchData.DataType _extraType) {
32 | name = _name;
33 | extraType = _extraType;
34 | }
35 | public String getName() {
36 | return name;
37 | }
38 | // public void setExtraType(IntentLaunchData.DataType _extraType) { extraType = _extraType; }
39 | public IntentLaunchData.DataType getExtraType() { return extraType; }
40 | public Object getValue() {
41 | return value;
42 | }
43 | public void putExtraInto(Intent intent) {
44 | if (extraType == IntentLaunchData.DataType.Integer)
45 | intent.putExtra(name, (int)value);
46 | if (extraType == IntentLaunchData.DataType.Boolean)
47 | intent.putExtra(name, (boolean)value);
48 | if (extraType == IntentLaunchData.DataType.Float)
49 | intent.putExtra(name, (float)value);
50 | if (extraType == IntentLaunchData.DataType.String)
51 | intent.putExtra(name, (String)value);
52 | }
53 |
54 | public static IntentPutExtra parseFrom(String name, String toBeParsed) {
55 | try {
56 | return new IntentPutExtra(name, Integer.parseInt(toBeParsed), IntentLaunchData.DataType.Integer);
57 | } catch (Exception e) {}
58 | try {
59 | return new IntentPutExtra(name, Float.parseFloat(toBeParsed), IntentLaunchData.DataType.Float);
60 | } catch (Exception e) {}
61 | if (toBeParsed.equalsIgnoreCase("true"))
62 | return new IntentPutExtra(name, true, IntentLaunchData.DataType.Boolean);
63 | if (toBeParsed.equalsIgnoreCase("false"))
64 | return new IntentPutExtra(name, false, IntentLaunchData.DataType.Boolean);
65 | // try {
66 | // value = Boolean.parseBoolean(toBeParsed);
67 | // return new IntentPutExtra(name, value, IntentLaunchData.DataType.Boolean);
68 | // } catch (Exception e) {}
69 |
70 | IntentPutExtra extra;
71 | if (toBeParsed.equals(IntentLaunchData.DataType.Uri.toString()))
72 | extra = new IntentPutExtra(name, null, IntentLaunchData.DataType.Uri);
73 | else if (toBeParsed.equals(IntentLaunchData.DataType.AbsolutePath.toString()))
74 | extra = new IntentPutExtra(name, null, IntentLaunchData.DataType.AbsolutePath);
75 | else if (toBeParsed.equals(IntentLaunchData.DataType.FileNameWithExt.toString()))
76 | extra = new IntentPutExtra(name, null, IntentLaunchData.DataType.FileNameWithExt);
77 | else if (toBeParsed.equals(IntentLaunchData.DataType.FileNameWithoutExt.toString()))
78 | extra = new IntentPutExtra(name, null, IntentLaunchData.DataType.FileNameWithoutExt);
79 | else
80 | extra = new IntentPutExtra(name, toBeParsed, IntentLaunchData.DataType.String);
81 | return extra;
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Data/KeyComboAction.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Data;
2 |
3 | public class KeyComboAction {
4 | public final KeyCombo keyCombo;
5 | public final Runnable action;
6 | public final String actionDesc;
7 |
8 | public KeyComboAction(KeyCombo keyCombo, Runnable action, String actionDesc) {
9 | this.keyCombo = keyCombo;
10 | this.action = action;
11 | this.actionDesc = actionDesc;
12 | }
13 | public KeyComboAction(KeyCombo keyCombo, Runnable action) {
14 | this(keyCombo, action, null);
15 | }
16 |
17 | // public KeyCombo getKeyCombo() {
18 | // return keyCombo;
19 | // }
20 | // public Runnable getAction() {
21 | // return action;
22 | // }
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Data/Paths.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Data;
2 |
3 | import android.os.Environment;
4 |
5 | import com.OxGames.OxShell.Helpers.AndroidHelpers;
6 | import com.OxGames.OxShell.OxShellApp;
7 |
8 | public class Paths {
9 | public static final String STORAGE_DIR_EXTERNAL = AndroidHelpers.combinePaths(Environment.getExternalStorageDirectory().toString(), "/OxShell");
10 | public static final String STORAGE_DIR_INTERNAL = OxShellApp.getContext().getExternalFilesDir(null).toString();
11 | //public static final String STORAGE_DIR_INTERNAL = OxShellApp.getCurrentActivity().getFilesDir().toString();
12 |
13 | public static final String SHADER_ITEMS_DIR_EXTERNAL = AndroidHelpers.combinePaths(STORAGE_DIR_EXTERNAL, "Shader");
14 | public static final String SHADER_ITEMS_DIR_INTERNAL = AndroidHelpers.combinePaths(STORAGE_DIR_INTERNAL, "Shader");
15 |
16 | public static final String LOGCAT_DIR_EXTERNAL = AndroidHelpers.combinePaths(STORAGE_DIR_EXTERNAL, "Logs");
17 | public static final String LOGCAT_DIR_INTERNAL = AndroidHelpers.combinePaths(STORAGE_DIR_INTERNAL, "Logs");
18 |
19 | public static final String SHORTCUTS_DIR_EXTERNAL = AndroidHelpers.combinePaths(STORAGE_DIR_EXTERNAL, "Intents");
20 | public static final String SHORTCUTS_DIR_INTERNAL = AndroidHelpers.combinePaths(STORAGE_DIR_INTERNAL, "Intents");
21 |
22 | public static final String HOME_ITEMS_DIR_EXTERNAL = AndroidHelpers.combinePaths(STORAGE_DIR_EXTERNAL, "Home");
23 | public static final String HOME_ITEMS_DIR_INTERNAL = AndroidHelpers.combinePaths(STORAGE_DIR_INTERNAL, "Home");
24 | public static final String ICONS_DIR_INTERNAL = AndroidHelpers.combinePaths(STORAGE_DIR_INTERNAL, "Icons");
25 | public static final String HOME_ITEMS_FILE_NAME = "HomeItems";
26 | public static final String HOME_ITEMS_CATS = "_cats";
27 | public static final String HOME_ITEMS_DEFAULTS = "_defaults";
28 | public static final String HOME_ITEMS_APPS = "_apps";
29 | public static final String HOME_ITEMS_ASSOCS = "_assocs";
30 |
31 | public static final String SETTINGS_INTERNAL_PATH = AndroidHelpers.combinePaths(STORAGE_DIR_INTERNAL, "Settings");
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/ExplorerActivity.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell;
2 |
3 | import android.os.Bundle;
4 | import android.view.View;
5 |
6 | import androidx.annotation.Nullable;
7 |
8 | import com.OxGames.OxShell.Data.SettingsKeeper;
9 | import com.OxGames.OxShell.Views.ExplorerView;
10 |
11 | import java.util.function.Consumer;
12 |
13 | public class ExplorerActivity extends PagedActivity {
14 | ExplorerView explorerView;
15 | private Consumer onDynamicInputShown = (onOff) -> {
16 | explorerView.setVisibility(onOff ? View.GONE : View.VISIBLE);
17 | };
18 |
19 | @Override
20 | protected void onCreate(Bundle savedInstanceState) {
21 | super.onCreate(savedInstanceState);
22 | //Log.d("ExplorerActivity", "onCreate");
23 | setContentView(R.layout.activity_explorer);
24 | explorerView = findViewById(R.id.explorer_list);
25 | }
26 |
27 | @Override
28 | protected void onPostCreate(@Nullable Bundle savedInstanceState) {
29 | super.onPostCreate(savedInstanceState);
30 | int systemUi = SettingsKeeper.getCurrentSysUIState();
31 | setMarginsFor(SettingsKeeper.hasStatusBarVisible(systemUi), SettingsKeeper.hasNavBarVisible(systemUi), R.id.explorer_list);
32 | getDynamicInput().addShownListener(onDynamicInputShown);
33 | }
34 |
35 | @Override
36 | protected void onResume() {
37 | super.onResume();
38 | explorerView.onResume();
39 | }
40 | @Override
41 | protected void onPause() {
42 | super.onPause();
43 | explorerView.onPause();
44 | }
45 |
46 | @Override
47 | protected void onDestroy() {
48 | super.onDestroy();
49 | getDynamicInput().removeShownListener(onDynamicInputShown);
50 | }
51 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/FileChooserActivity.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell;
2 |
3 | import android.os.Bundle;
4 | import android.view.View;
5 |
6 | import androidx.annotation.Nullable;
7 |
8 | import com.OxGames.OxShell.Data.SettingsKeeper;
9 | import com.OxGames.OxShell.Views.ExplorerView;
10 |
11 | import java.util.function.Consumer;
12 |
13 | public class FileChooserActivity extends PagedActivity {
14 | ExplorerView explorerView;
15 | private Consumer onDynamicInputShown = (onOff) -> {
16 | explorerView.setVisibility(onOff ? View.GONE : View.VISIBLE);
17 | };
18 |
19 | @Override
20 | protected void onCreate(Bundle savedInstanceState) {
21 | super.onCreate(savedInstanceState);
22 | setContentView(R.layout.activity_chooser);
23 | explorerView = findViewById(R.id.explorer_list);
24 | }
25 |
26 | @Override
27 | protected void onPostCreate(@Nullable Bundle savedInstanceState) {
28 | super.onPostCreate(savedInstanceState);
29 | int systemUi = SettingsKeeper.getCurrentSysUIState();
30 | setMarginsFor(SettingsKeeper.hasStatusBarVisible(systemUi), SettingsKeeper.hasNavBarVisible(systemUi), R.id.explorer_list);
31 | getDynamicInput().addShownListener(onDynamicInputShown);
32 | }
33 |
34 | @Override
35 | protected void onResume() {
36 | super.onResume();
37 | explorerView.onResume();
38 | }
39 | @Override
40 | protected void onPause() {
41 | super.onPause();
42 | explorerView.onPause();
43 | }
44 |
45 | @Override
46 | protected void onDestroy() {
47 | super.onDestroy();
48 | getDynamicInput().removeShownListener(onDynamicInputShown);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Helpers/MathHelpers.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Helpers;
2 |
3 | import android.util.Log;
4 |
5 | public class MathHelpers {
6 | public static final long MS_PER_SEC = 1000L;
7 | public static final long MS_PER_MIN = MS_PER_SEC * 60;
8 | public static final long MS_PER_HR = MS_PER_MIN * 60;
9 | public static final long MS_PER_DAY = MS_PER_HR * 24;
10 | public static final long MS_PER_YEAR = MS_PER_DAY * 365;
11 |
12 | public static int calculateMillisForFps(int fps) {
13 | return Math.round((1f / fps) * 1000);
14 | }
15 | public static String msToTimestamp(long ms) {
16 | long totalTime = ms;
17 | long years = totalTime / MS_PER_YEAR;
18 | totalTime %= MS_PER_YEAR;
19 | long days = totalTime / MS_PER_DAY;
20 | totalTime %= MS_PER_DAY;
21 | long hours = totalTime / MS_PER_HR;
22 | totalTime %= MS_PER_HR;
23 | long minutes = totalTime / MS_PER_MIN;
24 | totalTime %= MS_PER_MIN;
25 | long seconds = totalTime / MS_PER_SEC;
26 | return (years > 0 ? years + ":" : "") + (days > 0 ? (days < 10 ? "00" : (days < 100 ? "0" : "")) + days + ":" : "") + (hours > 0 ? (hours < 10 ? "0" : "") + hours + ":" : "") + (minutes < 10 ? "0" : "") + minutes + ":" + (seconds < 10 ? "0" : "") + seconds;
27 | }
28 |
29 | public static int max(int... values) {
30 | if (values.length <= 0)
31 | throw new IllegalArgumentException("Cannot get max of nothing");
32 | int max = values[0];
33 | for (int i = 1; i < values.length; i++)
34 | max = Math.max(max, values[i]);
35 | return max;
36 | }
37 | public static int min(int... values) {
38 | if (values.length <= 0)
39 | throw new IllegalArgumentException("Cannot get min of nothing");
40 | int min = values[0];
41 | for (int i = 1; i < values.length; i++)
42 | min = Math.min(min, values[i]);
43 | return min;
44 | }
45 | public static int hash(Integer... values) {
46 | StringBuilder hashMedium = new StringBuilder();
47 | for (int i = 0; i < values.length; i++) {
48 | hashMedium.append(values[i]);
49 | if (i < values.length - 1)
50 | hashMedium.append(",");
51 | }
52 | int hash = hashMedium.toString().hashCode();
53 | //Log.d("MathHelpers", hashMedium + " => " + hash);
54 | return hash;
55 | }
56 | public static double roundTo(double value, int places) {
57 | double placesMult = Math.pow(10, places);
58 | return Math.round(value * placesMult) / placesMult;
59 | }
60 | public static float roundTo(float value, int places) {
61 | return (float)roundTo((double)value, places);
62 | }
63 | public static int clamp(int value, int min, int max) {
64 | return Math.min(Math.max(min, value), max);
65 | }
66 | public static float clamp(float value, float min, float max) {
67 | return Math.min(Math.max(min, value), max);
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Helpers/Serialaver.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Helpers;
2 |
3 | import android.util.Log;
4 |
5 |
6 | import org.nustaq.serialization.FSTConfiguration;
7 |
8 | import java.io.FileInputStream;
9 | import java.io.FileOutputStream;
10 | import java.io.ObjectInputStream;
11 | import java.io.ObjectOutputStream;
12 | import java.io.Serializable;
13 | import java.io.UnsupportedEncodingException;
14 | import java.nio.charset.StandardCharsets;
15 |
16 | public class Serialaver {
17 | public static void saveFile(Serializable obj, String path) {
18 | try {
19 | FileOutputStream file = new FileOutputStream(path);
20 | ObjectOutputStream out = new ObjectOutputStream(file);
21 | out.writeObject(obj);
22 | out.close();
23 | file.close();
24 | } catch(Exception e) {
25 | Log.e("Serialaver", e.getMessage());
26 | }
27 | }
28 | public static Object loadFile(String path) {
29 | Object obj = null;
30 |
31 | try {
32 | FileInputStream file = new FileInputStream(path);
33 | ObjectInputStream in = new ObjectInputStream(file);
34 | obj = in.readObject();
35 | in.close();
36 | file.close();
37 | } catch (Exception e) {
38 | Log.e("Serialaver", e.getMessage());
39 | }
40 | return obj;
41 | }
42 | public static void saveAsFSTJSON(Object data, String absPath) {
43 | FSTConfiguration conf = FSTConfiguration.createJsonConfiguration();
44 |
45 | byte[] bytes = conf.asByteArray(data);
46 | try {
47 | String json = new String(bytes,"UTF-8");
48 | AndroidHelpers.writeToFile(absPath, json);
49 | } catch (UnsupportedEncodingException e) {
50 | throw new RuntimeException(e);
51 | }
52 | //Object deser = conf.asObject(bytes);
53 | }
54 | public static Object loadFromFSTJSON(String absPath) {
55 | return loadFromFSTJSON(absPath, FSTConfiguration.createJsonConfiguration());
56 | }
57 | public static Object loadFromFSTJSON(String absPath, FSTConfiguration customConf) {
58 | String json = AndroidHelpers.readFile(absPath);
59 | return customConf.asObject(json.getBytes(StandardCharsets.UTF_8));
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Helpers/ShellCommander.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Helpers;
2 |
3 | import android.util.Log;
4 |
5 | import java.io.BufferedReader;
6 | import java.io.IOException;
7 | import java.io.InputStreamReader;
8 | import java.util.stream.Collectors;
9 |
10 | public class ShellCommander {
11 | public static String run(String command) {
12 | String output = null;
13 | try {
14 | Process process = Runtime.getRuntime().exec(command);
15 | try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
16 | output = bufferedReader.lines().collect(Collectors.joining(System.lineSeparator()));
17 | } catch (IOException ex) {
18 | Log.e("ShellCommander", ex.getMessage());
19 | }
20 | } catch (IOException ex) {
21 | Log.e("ShellCommander", ex.getMessage());
22 | }
23 | return output;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/AdapterListener.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | public interface AdapterListener {
4 | void onViewsReady();
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/CustomViewListener.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | public interface CustomViewListener {
4 | void onMakeSelection(int index);
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/DirsCarrier.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | public interface DirsCarrier {
4 | void clearDirsList();
5 | void addToDirsList(String dir);
6 | void removeFromDirsList(String dir);
7 | String[] getDirsList();
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/DirsViewListener.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | public interface DirsViewListener {
4 | void onDirsResult(int resultCode, DirsCarrier output);
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/DynamicInputListener.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | import android.view.View;
4 |
5 | public interface DynamicInputListener {
6 | void onFocusChanged(View view, boolean hasFocus);
7 | void onValuesChanged();
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/InputReceiver.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | import android.view.KeyEvent;
4 | //import android.view.MotionEvent;
5 |
6 | public interface InputReceiver {
7 | // boolean receiveMotionEvent(MotionEvent motion_event);
8 | boolean receiveKeyEvent(KeyEvent key_event);
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/PkgAppsListener.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | import android.content.pm.ResolveInfo;
4 |
5 | import java.util.List;
6 |
7 | public interface PkgAppsListener {
8 | void onQueryApps(List apps);
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/QuadConsumer.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | @FunctionalInterface
4 | public interface QuadConsumer {
5 | void accept(T t, U u, V v, W w);
6 | }
7 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/Refreshable.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | public interface Refreshable {
4 | void refresh();
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/SlideTouchListener.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | public interface SlideTouchListener {
4 | void onSwipeUp();
5 | void onSwipeDown();
6 | void onSwipeLeft();
7 | void onSwipeRight();
8 | void onClick();
9 | void onLongClick();
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/TriConsumer.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | @FunctionalInterface
4 | public interface TriConsumer {
5 | void accept(T t, U u, V v);
6 | }
7 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Interfaces/XMBAdapterListener.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Interfaces;
2 |
3 | public interface XMBAdapterListener {
4 | void onColumnAdded(int columnIndex);
5 | void onColumnRemoved(int columnIndex);
6 | void onColumnShifted(int fromColIndex, int toColIndex);
7 | void onSubItemAdded(int columnIndex, int localIndex);
8 | void onSubItemRemoved(int columnIndex, int localIndex);
9 | void onInnerItemsChanged(Integer... position);
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/main/java/com/OxGames/OxShell/Views/NonConsumableRecyclerView.java:
--------------------------------------------------------------------------------
1 | package com.OxGames.OxShell.Views;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.view.MotionEvent;
6 |
7 | import androidx.recyclerview.widget.RecyclerView;
8 |
9 | public class NonConsumableRecyclerView extends RecyclerView {
10 |
11 | public NonConsumableRecyclerView(Context context) {
12 | super(context);
13 | }
14 |
15 | public NonConsumableRecyclerView(Context context, AttributeSet attrs) {
16 | super(context, attrs);
17 | }
18 |
19 | public NonConsumableRecyclerView(Context context, AttributeSet attrs, int defStyle) {
20 | super(context, attrs, defStyle);
21 | }
22 |
23 | @Override
24 | public boolean onInterceptTouchEvent(MotionEvent ev) {
25 | // Do not intercept touch events, allow them to pass through to the view below
26 | return false;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/banner_free_xhdpi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/drawable/banner_free_xhdpi.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/banner_xhdpi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/drawable/banner_xhdpi.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_adb_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_arrow_back_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_arrow_drop_down_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_close_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_fast_forward_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_fast_rewind_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_fullscreen_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_hourglass_empty_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_info_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_library_music_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_pause_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_person_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_play_arrow_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_skip_next_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_skip_previous_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_video_library_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/fading_left_edge.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/fading_right_edge.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_accessibility_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_add_circle_outline_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_audio_file_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_auto_awesome_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_block_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_cancel_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_check_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_construction_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_folder_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_forum_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_games_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_headphones_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_hide_image_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_home_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_image_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_map_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_movie_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_newspaper_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_photo_camera_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_question_mark_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_send_time_extension_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_settings_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_source_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_video_file_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_view_list_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_work_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/icon_free_xhdpi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/drawable/icon_free_xhdpi.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/icon_xhdpi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/drawable/icon_xhdpi.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ox_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/drawable/ox_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rounded_outline_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rounded_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rounded_spinner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
8 |
12 |
13 |
14 |
15 |
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_chooser.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_home.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/detail_row.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
14 |
15 |
22 |
23 |
31 |
32 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/home_context_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/xmb_cat.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
12 |
13 |
22 |
23 |
39 |
40 |
41 |
44 |
45 |
51 |
52 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/xmb_inner_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
12 |
21 |
22 |
28 |
29 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/xmb_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
12 |
13 |
22 |
23 |
40 |
41 |
42 |
43 |
46 |
47 |
53 |
54 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/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/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-hdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-mdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/values-night/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs_explorer_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #EAF0CE
4 | #C0C5C1
5 | #7D8491
6 | #574B60
7 | #3F334D
8 |
9 | #FFFFFFFF
10 |
11 | #33EAF0CE
12 | #00000000
13 |
14 | #FFBB86FC
15 | #FF6200EE
16 | #FF3700B3
17 | #FF03DAC5
18 | #FF018786
19 | #FF000000
20 | #FFFFFFFF
21 | #FF039BE5
22 | #FF01579B
23 | #FF40C4FF
24 | #FF00B0FF
25 | #66000000
26 | #FF29B6F6
27 | #FFBDBDBD
28 | #FF757575
29 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Ox Paper
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/accessibility_service_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/ox_paper.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | buildscript {
3 | ext.kotlin_version = '1.6.21'
4 | repositories {
5 | google()
6 | mavenCentral()
7 | }
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:8.1.4'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 |
12 | // NOTE: Do not place your application dependencies here; they belong
13 | // in the individual module build.gradle files
14 | }
15 | }
16 |
17 | allprojects {
18 | repositories {
19 | google()
20 | mavenCentral()
21 | jcenter() // Warning: this repository is going to shut down soon
22 | maven { url 'https://jitpack.io' }
23 | }
24 | }
25 |
26 | task clean(type: Delete) {
27 | delete rootProject.buildDir
28 | }
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app"s APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | android.defaults.buildfeatures.buildconfig=true
19 | android.nonTransitiveRClass=false
20 | android.nonFinalResIds=false
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oxters168/OxShell/c79fbad16ca72e2c0c5aa91cfebc7b0434ab0d59/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Jun 21 17:27:26 EDT 2021
2 | distributionBase=GRADLE_USER_HOME
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | set DIRNAME=%~dp0
12 | if "%DIRNAME%" == "" set DIRNAME=.
13 | set APP_BASE_NAME=%~n0
14 | set APP_HOME=%DIRNAME%
15 |
16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17 | set DEFAULT_JVM_OPTS=
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windows variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 |
53 | :win9xME_args
54 | @rem Slurp the command line arguments.
55 | set CMD_LINE_ARGS=
56 | set _SKIP=2
57 |
58 | :win9xME_args_slurp
59 | if "x%~1" == "x" goto execute
60 |
61 | set CMD_LINE_ARGS=%*
62 |
63 | :execute
64 | @rem Setup the command line
65 |
66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67 |
68 | @rem Execute Gradle
69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70 |
71 | :end
72 | @rem End local scope for the variables with windows NT shell
73 | if "%ERRORLEVEL%"=="0" goto mainEnd
74 |
75 | :fail
76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77 | rem the _cmd.exe /c_ return code!
78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79 | exit /b 1
80 |
81 | :mainEnd
82 | if "%OS%"=="Windows_NT" endlocal
83 |
84 | :omega
85 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = "OxShell"
2 | include ':app'
3 |
4 | // for when modifying ShaderView
5 | //include ':shader_view'
6 | //project(':shader_view').projectDir = new File('../Libraries/ShaderView/lib')
--------------------------------------------------------------------------------