diff options
26 files changed, 548 insertions, 673 deletions
diff --git a/app/build.gradle b/app/build.gradle index 33514ea..840289d 100644 --- a/app/build.gradle +++ b/app/build.gradle | |||
@@ -1,5 +1,6 @@ | |||
1 | apply plugin: 'com.android.application' | 1 | apply plugin: 'com.android.application' |
2 | apply plugin: 'me.tatarka.retrolambda' | 2 | apply plugin: 'kotlin-android' |
3 | apply plugin: 'kotlin-android-extensions' | ||
3 | 4 | ||
4 | android { | 5 | android { |
5 | compileSdkVersion 25 | 6 | compileSdkVersion 25 |
@@ -7,10 +8,9 @@ android { | |||
7 | defaultConfig { | 8 | defaultConfig { |
8 | applicationId "org.pacien.tincapp" | 9 | applicationId "org.pacien.tincapp" |
9 | minSdkVersion 21 | 10 | minSdkVersion 21 |
10 | targetSdkVersion 25 | 11 | targetSdkVersion 21 |
11 | versionCode 1 | 12 | versionCode 1 |
12 | versionName "0.1-preview" | 13 | versionName "0.1-preview" |
13 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" | ||
14 | } | 14 | } |
15 | buildTypes { | 15 | buildTypes { |
16 | release { | 16 | release { |
@@ -18,10 +18,6 @@ android { | |||
18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | 18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' |
19 | } | 19 | } |
20 | } | 20 | } |
21 | compileOptions { | ||
22 | sourceCompatibility JavaVersion.VERSION_1_8 | ||
23 | targetCompatibility JavaVersion.VERSION_1_8 | ||
24 | } | ||
25 | externalNativeBuild { | 21 | externalNativeBuild { |
26 | cmake { | 22 | cmake { |
27 | path "CMakeLists.txt" | 23 | path "CMakeLists.txt" |
@@ -45,5 +41,8 @@ dependencies { | |||
45 | exclude group: 'commons-logging', module: 'commons-logging' | 41 | exclude group: 'commons-logging', module: 'commons-logging' |
46 | } | 42 | } |
47 | 43 | ||
48 | compile 'com.annimon:stream:1.1.5' | 44 | compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" |
45 | } | ||
46 | repositories { | ||
47 | mavenCentral() | ||
49 | } | 48 | } |
diff --git a/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.java b/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.java deleted file mode 100644 index 0e6cb95..0000000 --- a/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.java +++ /dev/null | |||
@@ -1,71 +0,0 @@ | |||
1 | package org.pacien.tincapp.activities; | ||
2 | |||
3 | import android.content.ClipData; | ||
4 | import android.content.ClipboardManager; | ||
5 | import android.content.Context; | ||
6 | import android.content.Intent; | ||
7 | import android.net.Uri; | ||
8 | import android.os.Bundle; | ||
9 | import android.support.annotation.StringRes; | ||
10 | import android.support.design.widget.Snackbar; | ||
11 | import android.support.v7.app.AlertDialog; | ||
12 | import android.support.v7.app.AppCompatActivity; | ||
13 | import android.support.v7.widget.Toolbar; | ||
14 | import android.view.Menu; | ||
15 | import android.view.MenuItem; | ||
16 | import android.view.ViewGroup; | ||
17 | |||
18 | import org.pacien.tincapp.BuildConfig; | ||
19 | import org.pacien.tincapp.R; | ||
20 | import org.pacien.tincapp.context.AppInfo; | ||
21 | |||
22 | /** | ||
23 | * @author pacien | ||
24 | */ | ||
25 | public abstract class BaseActivity extends AppCompatActivity { | ||
26 | |||
27 | @Override | ||
28 | protected void onCreate(Bundle savedInstanceState) { | ||
29 | super.onCreate(savedInstanceState); | ||
30 | setContentView(R.layout.base); | ||
31 | Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); | ||
32 | setSupportActionBar(toolbar); | ||
33 | } | ||
34 | |||
35 | @Override | ||
36 | public boolean onCreateOptionsMenu(Menu m) { | ||
37 | getMenuInflater().inflate(R.menu.menu_base, m); | ||
38 | return true; | ||
39 | } | ||
40 | |||
41 | public void aboutDialog(MenuItem i) { | ||
42 | new AlertDialog.Builder(this) | ||
43 | .setTitle(BuildConfig.APPLICATION_ID) | ||
44 | .setMessage(getResources().getString(R.string.app_short_desc) + "\n\n" + | ||
45 | getResources().getString(R.string.app_copyright) + " " + | ||
46 | getResources().getString(R.string.app_license) + "\n\n" + | ||
47 | AppInfo.all(getResources())) | ||
48 | .setNeutralButton(R.string.action_open_project_website, (dialog, which) -> openWebsite(R.string.app_website_url)) | ||
49 | .setPositiveButton(R.string.action_close, (dialog, which) -> { /* nop */ }) | ||
50 | .show(); | ||
51 | } | ||
52 | |||
53 | protected ViewGroup getContentView() { | ||
54 | return (ViewGroup) findViewById(R.id.main_content); | ||
55 | } | ||
56 | |||
57 | protected void openWebsite(@StringRes int url) { | ||
58 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getResources().getString(url)))); | ||
59 | } | ||
60 | |||
61 | protected void notify(@StringRes int msg) { | ||
62 | Snackbar.make(findViewById(R.id.activity_base), msg, Snackbar.LENGTH_LONG).show(); | ||
63 | } | ||
64 | |||
65 | protected void copyIntoClipboard(String label, String str) { | ||
66 | ClipboardManager c = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); | ||
67 | c.setPrimaryClip(ClipData.newPlainText(label, str)); | ||
68 | notify(R.string.message_text_copied); | ||
69 | } | ||
70 | |||
71 | } | ||
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 @@ | |||
1 | package org.pacien.tincapp.activities | ||
2 | |||
3 | import android.content.ClipData | ||
4 | import android.content.ClipboardManager | ||
5 | import android.content.Context | ||
6 | import android.content.Intent | ||
7 | import android.net.Uri | ||
8 | import android.os.Bundle | ||
9 | import android.support.annotation.StringRes | ||
10 | import android.support.design.widget.Snackbar | ||
11 | import android.support.v7.app.AlertDialog | ||
12 | import android.support.v7.app.AppCompatActivity | ||
13 | import android.view.Menu | ||
14 | import android.view.MenuItem | ||
15 | import kotlinx.android.synthetic.main.base.* | ||
16 | import org.pacien.tincapp.BuildConfig | ||
17 | import org.pacien.tincapp.R | ||
18 | import org.pacien.tincapp.context.AppInfo | ||
19 | |||
20 | /** | ||
21 | * @author pacien | ||
22 | */ | ||
23 | abstract 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) { | ||