Skip to content

Commit 56d4425

Browse files
committed
Kotlin DemoBase
1 parent b090ce3 commit 56d4425

2 files changed

Lines changed: 89 additions & 100 deletions

File tree

MPChartExample/src/main/java/com/xxmassdeveloper/mpchartexample/notimportant/DemoBase.java

Lines changed: 0 additions & 100 deletions
This file was deleted.
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package com.xxmassdeveloper.mpchartexample.notimportant
2+
3+
import android.Manifest
4+
import android.content.pm.PackageManager
5+
import android.graphics.Typeface
6+
import android.os.Bundle
7+
import android.view.View
8+
import android.widget.Toast
9+
import androidx.appcompat.app.AppCompatActivity
10+
import androidx.core.app.ActivityCompat
11+
import com.github.mikephil.charting.charts.Chart
12+
import com.google.android.material.snackbar.Snackbar
13+
import com.xxmassdeveloper.mpchartexample.R
14+
15+
abstract class DemoBase : AppCompatActivity(), ActivityCompat.OnRequestPermissionsResultCallback {
16+
@JvmField
17+
protected val months: Array<String> = arrayOf(
18+
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"
19+
)
20+
21+
@JvmField
22+
protected val parties: Array<String> = arrayOf(
23+
"Party A", "Party B", "Party C", "Party D", "Party E", "Party F", "Party G", "Party H",
24+
"Party I", "Party J", "Party K", "Party L", "Party M", "Party N", "Party O", "Party P",
25+
"Party Q", "Party R", "Party S", "Party T", "Party U", "Party V", "Party W", "Party X",
26+
"Party Y", "Party Z"
27+
)
28+
29+
@JvmField
30+
protected var tfRegular: Typeface? = null
31+
32+
@JvmField
33+
protected var tfLight: Typeface? = null
34+
35+
override fun onCreate(savedInstanceState: Bundle?) {
36+
super.onCreate(savedInstanceState)
37+
38+
tfRegular = Typeface.createFromAsset(assets, "OpenSans-Regular.ttf")
39+
tfLight = Typeface.createFromAsset(assets, "OpenSans-Light.ttf")
40+
}
41+
42+
override fun onBackPressed() {
43+
super.onBackPressed()
44+
overridePendingTransition(R.anim.move_left_in_activity, R.anim.move_right_out_activity)
45+
}
46+
47+
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
48+
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
49+
if (requestCode == PERMISSION_STORAGE) {
50+
if (grantResults.size == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
51+
saveToGallery()
52+
} else {
53+
Toast.makeText(applicationContext, "Saving FAILED!", Toast.LENGTH_SHORT).show()
54+
}
55+
}
56+
}
57+
58+
protected fun requestStoragePermission(view: View?) {
59+
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
60+
Snackbar.make(view!!, "Write permission is required to save image to gallery", Snackbar.LENGTH_INDEFINITE)
61+
.setAction(android.R.string.ok) {
62+
ActivityCompat.requestPermissions(
63+
this@DemoBase,
64+
arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
65+
PERMISSION_STORAGE
66+
)
67+
}
68+
.show()
69+
} else {
70+
Toast.makeText(applicationContext, "Permission Required!", Toast.LENGTH_SHORT).show()
71+
ActivityCompat.requestPermissions(this@DemoBase, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), PERMISSION_STORAGE)
72+
}
73+
}
74+
75+
protected fun saveToGallery(chart: Chart<*>?, name: String) {
76+
chart?.let {
77+
if (chart.saveToGallery(name + "_" + System.currentTimeMillis(), 70))
78+
Toast.makeText(applicationContext, "Saving SUCCESSFUL!", Toast.LENGTH_SHORT).show()
79+
else
80+
Toast.makeText(applicationContext, "Saving FAILED!", Toast.LENGTH_SHORT).show()
81+
}
82+
}
83+
84+
protected abstract fun saveToGallery()
85+
86+
companion object {
87+
private const val PERMISSION_STORAGE = 0
88+
}
89+
}

0 commit comments

Comments
 (0)