aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt')
-rw-r--r--app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt62
1 files changed, 62 insertions, 0 deletions
diff --git a/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt b/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt
new file mode 100644
index 0000000..6070a0a
--- /dev/null
+++ b/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt
@@ -0,0 +1,62 @@
1package org.pacien.tincapp.activities
2
3import android.content.ClipData
4import android.content.ClipboardManager
5import android.content.Context
6import android.content.Intent
7import android.net.Uri
8import android.os.Bundle
9import android.support.annotation.StringRes
10import android.support.design.widget.Snackbar
11import android.support.v7.app.AlertDialog
12import android.support.v7.app.AppCompatActivity
13import android.view.Menu
14import android.view.MenuItem
15import kotlinx.android.synthetic.main.base.*
16import org.pacien.tincapp.BuildConfig
17import org.pacien.tincapp.R
18import org.pacien.tincapp.context.AppInfo
19
20/**
21 * @author pacien
22 */
23abstract class BaseActivity : AppCompatActivity() {
24
25 override fun onCreate(savedInstanceState: Bundle?) {
26 super.onCreate(savedInstanceState)
27 setContentView(R.layout.base)
28 setSupportActionBar(toolbar)
29 }
30
31 override fun onCreateOptionsMenu(m: Menu): Boolean {
32 menuInflater.inflate(R.menu.menu_base, m)
33 return true
34 }
35
36 fun aboutDialog(@Suppress("UNUSED_PARAMETER") i: MenuItem) {
37 AlertDialog.Builder(this)
38 .setTitle(BuildConfig.APPLICATION_ID)
39 .setMessage(resources.getString(R.string.app_short_desc) + "\n\n" +
40 resources.getString(R.string.app_copyright) + " " +
41 resources.getString(R.string.app_license) + "\n\n" +
42 AppInfo.all(resources))
43 .setNeutralButton(R.string.action_open_project_website) { _, _ -> openWebsite(R.string.app_website_url) }
44 .setPositiveButton(R.string.action_close) { _, _ -> /* nop */ }
45 .show()
46 }
47
48 protected fun openWebsite(@StringRes url: Int) {
49 startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(resources.getString(url))))
50 }
51
52 protected fun notify(@StringRes msg: Int) {
53 Snackbar.make(activity_base, msg, Snackbar.LENGTH_LONG).show()
54 }
55
56 protected fun copyIntoClipboard(label: String, str: String) {
57 val c = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
58 c.primaryClip = ClipData.newPlainText(label, str)
59 notify(R.string.message_text_copied)
60 }
61
62}