Borderlands SHiFT Codes

Borderlands SHiFT Codes

Loading version...

An unofficial fan project for viewing and managing SHiFT codes from the Borderlands and Wonderlands universe

About This App

Borderlands SHiFT Codes is a fan-created application designed to provide easy access to SHiFT codes for the Borderlands and Wonderlands gaming universe. This app serves as a convenient way to view and manage codes that can be redeemed on the official Gearbox SHiFT website or directly in-game.

Important Disclaimer

This application is completely unofficial and not affiliated with, sponsored by, or endorsed by Gearbox Software or 2K Games.

All content, characters, visuals, and references to Borderlands and Tiny Tina's Wonderlands are the intellectual property of Gearbox Software and 2K Games, who have brought these incredible worlds to life.

Open Source Repository

This project is open source and available on GitHub.

View on GitHub

Key Features

Code Management

View and organize SHiFT codes in an easy-to-navigate interface

Quick Search

Find specific codes quickly with built-in filters

Mobile Optimized

Designed for Android mobile devices with touch-friendly controls

Regular Updates

Codes are manually updated ASAP when found on Gearbox social postings

Offline Storage

Room database for offline data access and user redemption tracking

Smart Notifications

Automatic notifications for new active SHiFT codes every 4 hours

Dark Theme

Complete light/dark theme support with Material 3 theming

Background Sync

Automatic background synchronization with WorkManager

App Screenshots

Take a look at the app interface and see how it helps you manage SHiFT codes:

Main app interface
Main app interface
Code details view
Settings and preferences
Code categories
Code category filters
Dark mode interface
Dark mode theme option
Compact view mode
Compact view mode - 3x more codes visible

Technical Details

Platform Compatibility

Older legacy codes distributed via SHiFT were platform-specific, but that's no longer the case. Gearbox now issues SHiFT codes that are valid across all major platforms. To avoid unnecessary clutter, a platform filter wasn't included in this app to support the platform specific legacy codes. This also means that those legacy codes are not provided in this app's dataset.

Data Management

SHiFT code listings are sourced from publicly published data and manually updated as soon as new codes are announced on Gearbox social media. The app now features an offline-first architecture with Room database for local storage, automatic background synchronization, and smart notification system for new codes.

Offline-First Architecture

Version 1.4.0 introduces a complete offline-first approach with Room database implementation. Users can access all SHiFT codes even without an internet connection, with automatic background sync ensuring data stays current when network connectivity is available.

Notification System

The app now includes WorkManager integration for periodic background sync every 4 hours, with smart notifications alerting users to new active SHiFT codes. The system respects battery optimization settings and only syncs when network is connected and battery is not low.

Note: This app is designed for simplicity and reliability. The manual update process ensures that all codes are verified and accurate, even if it means slightly delayed updates compared to automated systems.

Requirements: Android API 24+ (Android 7.0) with minimum 2GB RAM recommended for optimal performance. Enhanced offline capabilities and notification permissions for Android 13+ devices.

Release History

v2.1.0 Latest Release

Offline catalog browsing: Remote sync failures no longer hide cached SHiFT codes behind a full-screen error.

  • Fixed: Failed Supabase refreshes previously set a catalog error, which replaced the list with the error screen even when Room still had codes
  • New: OfflineSyncBanner — "Couldn't refresh. Showing saved codes." (or "Couldn't refresh from the server." when the catalog is empty) with Retry
  • New: Top bar subtitle Couldn't refresh from the server after a failed sync
  • Changed: error is reserved for local catalog load failures; remote sync failures only set isOfflineMode
  • Changed: Catalog body prefers the list whenever saved codes exist (loading still wins); empty catalog plus failed sync shows empty state plus the banner, not the error screen
  • Updated: dashboard/ header is logo-only (removed Dashboard/Repository nav links and hamburger)
v2.0.0 Previous Release

Supabase & Dashboard Migration: Moved the Android app and dashboard to Supabase-backed SHiFT data, with GitHub Actions automation and GitHub Pages hosting.

  • Changed: Remote SHiFT source for the Android app from Google Sheets published CSV to Supabase Postgres
  • New: Automated loading of remote SHiFT data to the database from repository-maintained file (/appdata/BL_SHIFT_CODES.csv)
  • New: GitHub Actions workflow loads Supabase Postgres when changes to codes in BL_SHIFT_CODES.csv are pushed
  • Changed: Dashboard moved from self-host on this site to the app project via GitHub Pages, using the new remote source instead of CSV
  • New: GitHub Actions workflow automatically republishes the dashboard when dashboard code changes are pushed
  • Updated: Dashboard GitHub Pages URL is now https://bmoler68.github.io/BorderlandsSHiFTCodes/
  • Improved: Miscellaneous cleanup and optimization changes
v1.8.0 Previous Release

Stability & Data Integrity Update: Fixed intermittent duplicate SHiFT code display on startup and hardened sync behavior for safer local database updates.

  • Fixed: Intermittent startup issue where newly added codes could briefly appear twice
  • Enhanced: Sync flow now enforces safer one-code-per-entry handling during remote/local reconciliation
  • Enhanced: Added sync serialization to reduce race conditions during startup/background refresh overlap
  • Enhanced: Soft-delete restore/update handling improved for codes that reappear in remote data
  • Improved: Data-layer cleanup and deduplication logic refactored to reduce dead paths and technical debt
  • Maintained: Full backward compatibility with existing functionality
v1.7.0 Previous Release

Maintenance & UI Improvements: Updated build configuration/tooling and refined compact-view layout to improve readability.

  • Updated: Target/compile SDK updated to API 36
  • Enhanced: Release builds now enable code minification and resource shrinking for smaller APKs
  • Fixed: Removed the redundant status dot in compact view to prevent SHiFT code text from being truncated
  • Maintained: Full backward compatibility with existing functionality
v1.6.0 Previous Release

Open Source Release: Application is now open source under the MIT License.

  • New: Open source release with MIT License
  • New: Updated copyright information in UI to reflect MIT License
  • New: Comprehensive documentation for secrets configuration file
  • New: Complete CSV file format documentation for data sources
  • Enhanced: README updated with open source setup instructions
  • Enhanced: Installation guide includes secrets file configuration steps
  • Maintained: Full backward compatibility with existing functionality
v1.5.0 Previous Release

Major Update: Added expiration time support with Eastern Time zone handling, reward type filtering (Keys, Cosmetics, Gear), and ultra-compact view mode for efficient code browsing.

  • New: Expiration time support with precise date and time tracking
  • New: Eastern Time (ET) zone support for accurate expiration calculations
  • New: Expiration time display on shift code cards with ET notation
  • New: Time-aware expiration logic considering both date and time values
  • New: Reward type filtering system (Keys, Cosmetics, Gear)
  • New: Ultra-compact view mode for space-efficient code browsing
  • New: Compact view toggle in navigation drawer with persistent preference
  • New: Compact card layout showing 3x more codes (60-80dp vs 180-220dp)
  • New: Colored left border indicator for quick status identification
  • New: Filter summary display showing reward filter state
  • Fixed: Fixed issue that would permit older filter states to persist when using redemption toggle
  • Maintained: Full backward compatibility with existing functionality
v1.4.0 Previous Release

Major Update: Implemented offline-first architecture with Room database, user redemption tracking, comprehensive light/dark theme support, and automatic notification system for new SHiFT codes.

  • New: Room database implementation for offline data storage
  • New: User redemption tracking with persistent local storage
  • New: Offline-first architecture with smart sync system
  • New: Complete light/dark theme system with Material 3 theming
  • New: Automatic notification system for new active SHiFT codes
  • New: WorkManager integration for periodic background sync (every 4 hours)
  • Enhanced: Data layer with separate local and remote repositories
  • Enhanced: Improved error handling and network resilience
  • Maintained: Full backward compatibility with existing functionality
v1.3.0 Previous Release

Maintenance: Updated build configuration for better handling of version numbers.

  • Build: Updated build configuration for better handling of version numbers
  • Improved version management and build process reliability
  • Enhanced development workflow and maintenance capabilities
  • Maintains full backward compatibility with existing functionality
v1.2.0 Previous Release

Improvements: Added fallback URL system for improved reliability when Google Sheets CSV is unavailable.

  • New: Added fallback URL system for improved reliability when Google Sheets CSV is unavailable
  • Automatic fallback to backup CSV source if primary Google Sheets URL fails
  • Enhanced network resilience and user experience
  • Maintains backward compatibility with existing functionality
v1.1.0 Previous Release

Improvements: Enhanced handling of unknown expiration dates for SHiFT codes to provide better user experience.

v1.0.0 Initial Release

Features: Initial release with core SHiFT code viewing and management functionality.

Privacy & Data Protection

By accessing or using the "Borderlands SHiFT Codes" application, you agree to the practices outlined below concerning the handling of your information.

Data Collection

This app does not collect, store, or transmit any personal or non-personal information.

View Full Privacy Policy

For questions about privacy or data handling, please contact us at bmoler@brianmoler.com

Open Source Licenses

This app uses several open-source libraries under permissive licenses.

Apache License 2.0

Licensed under Apache 2.0

Libraries:

  • androidx.core:core-ktx (1.17.0)
  • androidx.lifecycle:lifecycle-runtime-ktx (2.9.4)
  • androidx.activity:activity-compose (1.11.0)
  • androidx.compose:compose-bom (2025.10.01)
  • androidx.compose.ui:ui
  • androidx.compose.ui:ui-graphics
  • androidx.compose.ui:ui-tooling
  • androidx.compose.ui:ui-test-manifest
  • androidx.compose.material3:material3
  • androidx.compose.material:material-icons-extended (1.7.8)
  • androidx.room:room-runtime (2.8.3)
  • androidx.room:room-ktx (2.8.3)
  • androidx.room:room-compiler (2.8.3)
  • androidx.work:work-runtime-ktx (2.11.0)
  • androidx.test.ext:junit (1.3.0)
  • com.android.tools:desugar_jdk_libs (2.1.5)
  • org.jetbrains.kotlinx:kotlinx-coroutines-android (1.10.2)
  • Kotlin language features and compiler (2.2.21)
  • Android Gradle Plugin (8.13.2)
  • com.squareup.okhttp3:okhttp (5.3.0)

Eclipse Public License 1.0

Licensed under EPL 1.0

Library:

  • junit:junit (4.13.2)

MIT License

Licensed under the MIT License

Libraries:

  • org.robolectric:robolectric (4.16)
  • org.mockito:mockito-core (5.20.0)
  • org.mockito:mockito-inline (5.2.0)

Borderlands and Wonderlands are the creative properties of Gearbox Software and 2K Games. This app simply exists as a way for fans to stay in the loop with active SHiFT codes.

© 2025 Brian Moler. This project is licensed under the MIT License.