8000 GitHub - ZeusLMT/Journal: Journal – a dynamic on-the-go journal with the purpose of saving your thoughts, your moments vividly during the trip
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Journal – a dynamic on-the-go journal with the purpose of saving your thoughts, your moments vividly during the trip

Notifications You must be signed in to change notification settings

ZeusLMT/Journal

Repository files navigation

JOURNAL

Description

A dynamic on-the-go journal with the purpose of saving your thoughts and your moments during your journey.

Features

  • Capture and save photos with location
  • Fetch current weather information from web service and attach to each entry
  • Add journal entries
  • View journal entries with grid or list view
  • Single entry view provides various further actions (edit, delete, view in gallery...)
  • Theme personalization
  • Localization (en and vi)
  • Map view
  • Passcode login
  • Share to social network (under development)

APIs used

Screenshots

Permission screen

Grid view

Map view

Dark mode

Single post view

More screenshots

Android technical features

  • Fused Location Provider
  • Room SQLite persistent data
  • Shared Preferences (with PreferenceFragment)
  • Map Fragment from Google Map

Install

  • Clone from github
  • Open with Android Studio (prefereably >= 3.0)
  • Important: Acquire your own key from Google Maps and Open Weather Map first then modify 'google_maps_api.xml' and 'WeatherApi.kt with your own'
  • Run app in emulator or actual Android device

Code snippets:

"Post" entity for Room SQL

@Entity
data class Post(
    @PrimaryKey
    val time: String,
    val image: String,
    val description: String,
    val weather: String,
    @Embedded
    val location: Location): Comparable<Post> {

    override fun compareTo(other: Post): Int {
        val spd = SimpleDateFormat("dd/MM/yyyy - HH:mm:ss")
        val thisTime = spd.parse(this.time)
        val otherTime = spd.parse(other.time)

        return otherTime.compareTo(thisTime)
    }

    override fun toString(): String = "$time $image $description $location $weather"
}

Request location permission

    private fun handlePermissionScreen() {
        //Explain and request permission for Location
        setContentView(R.layout.splash_permission)
        contentView!!.startAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_in))

        imageButton_accept.setOnClickListener {
            //Request location permission
            if ((ContextCompat.checkSelfPermission(this,
                            android.Manifest.permission.ACCESS_FINE_LOCATION) !=
                            PackageManager.PERMISSION_GRANTED)) {
                ActivityCompat.requestPermissions(this,
                        arrayOf(android.Manifest.permission.ACCESS_FINE_LOCATION), 1)
            } else startTimeline()
        }
    }

Team members

  • Thanh Tran (congthanhptnk)
  • Tuan Le (ZeusLMT)

About

Journal – a dynamic on-the-go journal with the purpose of saving your thoughts, your moments vividly during the trip

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
0