Age | Commit message (Expand) | Author |
2020-09-27 | tv: hack gridlayoutmanager to fill columns before row if we're not scrolling | Jason A. Donenfeld |
2020-09-26 | ui: queue up tunnel mutating on activity scope instead of fragment scope | Jason A. Donenfeld |
2020-09-26 | ui: print proper exception trace from log viewer | Jason A. Donenfeld |
2020-09-26 | ui: request intent permissions from hidden activity | Jason A. Donenfeld |
2020-09-24 | tv: handle going up directories better | Jason A. Donenfeld |
2020-09-24 | tv: show volume descriptions for file picker | Jason A. Donenfeld |
2020-09-24 | ui: account for null data in callback | Jason A. Donenfeld |
2020-09-23 | ui: cleanup code after churn | Jason A. Donenfeld |
2020-09-23 | tv: use system picker for API 29+ | Jason A. Donenfeld |
2020-09-23 | tv: use our own file picker | Jason A. Donenfeld |
2020-09-23 | tv: escape deletion view with back button | Jason A. Donenfeld |
2020-09-22 | tv: select first item after toggling deletion mode | Jason A. Donenfeld |
2020-09-22 | tv: hook up isFocused as observable property | Jason A. Donenfeld |
2020-09-22 | tv: add text when there are no tunnels | Jason A. Donenfeld |
2020-09-22 | tv: select the right thing on load | Jason A. Donenfeld |
2020-09-22 | tv: set layout manager from XML | Harsh Shandilya |
2020-09-22 | tv: do theming | Harsh Shandilya |
2020-09-22 | tv: account for broken TVs with no file picker | Jason A. Donenfeld |
2020-09-22 | tv: do not redisplay stats when deleting | Jason A. Donenfeld |
2020-09-22 | tv: add ugly deletion mode | Jason A. Donenfeld |
2020-09-22 | tv: wire in stats | Jason A. Donenfeld |
2020-09-22 | tv: wire up tunnel start/stop | Jason A. Donenfeld |
2020-09-22 | tv: begin to wire up databindings | Jason A. Donenfeld |
2020-09-22 | tv: abstract out tunnel importing | Jason A. Donenfeld |
2020-09-22 | tv: initial draft of Android TV support | Harsh Shandilya |
2020-09-21 | TunnelManager: catch exception in intent receiver | Jason A. Donenfeld |
2020-09-20 | TunnelEditorFragment: do not assume a context | Jason A. Donenfeld |
2020-09-20 | TunnelListFragment: do not assume binding always exists | Jason A. Donenfeld |
2020-09-20 | TunnelDetailFragment: use kotlin coroutine for timer and rework nullability | Jason A. Donenfeld |
2020-09-20 | BaseFragment: avoid using requireContext() in permission result callback | Jason A. Donenfeld |
2020-09-20 | AddTunnelsSheet: disable qrcode scanning if no camera | Jason A. Donenfeld |
2020-09-18 | SettingsActivity: account for module present but no root | Jason A. Donenfeld |
2020-09-18 | ui: move to Jetpack DataStore instead of SharedPrefs | Jason A. Donenfeld |
2020-09-18 | ui: reformat code | Jason A. Donenfeld |
2020-09-17 | ui: retire EdgeToEdge | Harsh Shandilya |
2020-09-17 | ui: replace deprecated onActivityCreated with onViewCreated | Harsh Shandilya |
2020-09-17 | ui: refactor AddTunnelsSheet's selection communication | Harsh Shandilya |
2020-09-17 | ui: refactor AppListDialogFragment's selection communication | Harsh Shandilya |
2020-09-17 | activityx: use contracts more and refine | Jason A. Donenfeld |
2020-09-17 | DownloadsFileSaver: encapsulate permission checks | Jason A. Donenfeld |
2020-09-16 | LogViewerActivity: simplify scoping | Jason A. Donenfeld |
2020-09-16 | ZipExporterPreference: don't ask for storage permissions on newer android | Jason A. Donenfeld |
2020-09-16 | ui: resolve getColor deprecation in LogViewerActivity | Harsh Shandilya |
2020-09-16 | LogViewerActivity: destroy process when coroutine scope is cancelled | Jason A. Donenfeld |
2020-09-16 | ui: await activity creation to change selected tunnel | Harsh Shandilya |
2020-09-16 | ui: replace GlobalScope with a hand-rolled CoroutineScope | Harsh Shandilya |
2020-09-16 | ConfigNamingDialogFragment: fix focus request for config naming dialog | Harsh Shandilya |
2020-09-16 | TunnelEditorFragment: move backwards using fragment manager instead of hack | Jason A. Donenfeld |
2020-09-16 | TunnelEditorFragment: avoid extra trip through event loop | Jason A. Donenfeld |
2020-09-16 | Extensions: use more idiomatic kotlin | Jason A. Donenfeld |