General refactoring that included sensors changes, direction calculation and activity navigation using .startActivityForResults()