summaryrefslogtreecommitdiffhomepage
path: root/ui/src/main/java/com
AgeCommit message (Expand)Author
2020-09-26ui: request intent permissions from hidden activityJason A. Donenfeld
2020-09-24tv: handle going up directories betterJason A. Donenfeld
2020-09-24tv: show volume descriptions for file pickerJason A. Donenfeld
2020-09-24ui: account for null data in callbackJason A. Donenfeld
2020-09-23ui: cleanup code after churnJason A. Donenfeld
2020-09-23tv: use system picker for API 29+Jason A. Donenfeld
2020-09-23tv: use our own file pickerJason A. Donenfeld
2020-09-23tv: escape deletion view with back buttonJason A. Donenfeld
2020-09-22tv: select first item after toggling deletion modeJason A. Donenfeld
2020-09-22tv: hook up isFocused as observable propertyJason A. Donenfeld
2020-09-22tv: add text when there are no tunnelsJason A. Donenfeld
2020-09-22tv: select the right thing on loadJason A. Donenfeld
2020-09-22tv: set layout manager from XMLHarsh Shandilya
2020-09-22tv: do themingHarsh Shandilya
2020-09-22tv: account for broken TVs with no file pickerJason A. Donenfeld
2020-09-22tv: do not redisplay stats when deletingJason A. Donenfeld
2020-09-22tv: add ugly deletion modeJason A. Donenfeld
2020-09-22tv: wire in statsJason A. Donenfeld
2020-09-22tv: wire up tunnel start/stopJason A. Donenfeld
2020-09-22tv: begin to wire up databindingsJason A. Donenfeld
2020-09-22tv: abstract out tunnel importingJason A. Donenfeld
2020-09-22tv: initial draft of Android TV supportHarsh Shandilya
2020-09-21TunnelManager: catch exception in intent receiverJason A. Donenfeld
2020-09-20TunnelEditorFragment: do not assume a contextJason A. Donenfeld
2020-09-20TunnelListFragment: do not assume binding always existsJason A. Donenfeld
2020-09-20TunnelDetailFragment: use kotlin coroutine for timer and rework nullabilityJason A. Donenfeld
2020-09-20BaseFragment: avoid using requireContext() in permission result callbackJason A. Donenfeld
2020-09-20AddTunnelsSheet: disable qrcode scanning if no cameraJason A. Donenfeld
2020-09-18SettingsActivity: account for module present but no rootJason A. Donenfeld
2020-09-18ui: move to Jetpack DataStore instead of SharedPrefsJason A. Donenfeld
2020-09-18ui: reformat codeJason A. Donenfeld
2020-09-17ui: retire EdgeToEdgeHarsh Shandilya
2020-09-17ui: replace deprecated onActivityCreated with onViewCreatedHarsh Shandilya
2020-09-17ui: refactor AddTunnelsSheet's selection communicationHarsh Shandilya
2020-09-17ui: refactor AppListDialogFragment's selection communicationHarsh Shandilya
2020-09-17activityx: use contracts more and refineJason A. Donenfeld
2020-09-17DownloadsFileSaver: encapsulate permission checksJason A. Donenfeld
2020-09-16LogViewerActivity: simplify scopingJason A. Donenfeld
2020-09-16ZipExporterPreference: don't ask for storage permissions on newer androidJason A. Donenfeld
2020-09-16ui: resolve getColor deprecation in LogViewerActivityHarsh Shandilya
2020-09-16LogViewerActivity: destroy process when coroutine scope is cancelledJason A. Donenfeld
2020-09-16ui: await activity creation to change selected tunnelHarsh Shandilya
2020-09-16ui: replace GlobalScope with a hand-rolled CoroutineScopeHarsh Shandilya
2020-09-16ConfigNamingDialogFragment: fix focus request for config naming dialogHarsh Shandilya
2020-09-16TunnelEditorFragment: move backwards using fragment manager instead of hackJason A. Donenfeld
2020-09-16TunnelEditorFragment: avoid extra trip through event loopJason A. Donenfeld
2020-09-16Extensions: use more idiomatic kotlinJason A. Donenfeld
2020-09-16global: lint codebase with recent changesJason A. Donenfeld
2020-09-16ui: don't use low-level logger APIHarsh Shandilya
2020-09-16coroutines: lifecycleScope is by default on Main.immediateJason A. Donenfeld