Add toolbar and misc

This commit is contained in:
2020-05-19 04:53:12 +03:00
parent a51b1f506b
commit d355026607
6 changed files with 68 additions and 8 deletions
+5 -3
View File
@@ -2,15 +2,17 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.illusionware.npsbrowser"> package="com.illusionware.npsbrowser">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application <application
android:allowBackup="true" android:allowBackup="true"
android:icon="@mipmap/nps_icon" android:icon="@mipmap/nps_icon"
android:label="@string/app_name" android:label="@string/app_name"
android:roundIcon="@mipmap/nps_icon_round" android:roundIcon="@mipmap/nps_icon_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/NPSTheme">
<activity android:name=".activities.MainActivity"> <activity android:name=".activities.MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
@@ -6,11 +6,14 @@ import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import android.util.Log import android.util.Log
import androidx.appcompat.app.AppCompatActivity import android.view.Menu
import android.view.MenuItem
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import com.github.doyaaaaaken.kotlincsv.dsl.csvReader import com.github.doyaaaaaken.kotlincsv.dsl.csvReader
import com.illusionware.npsbrowser.AppData import com.illusionware.npsbrowser.AppData
import com.illusionware.npsbrowser.R
import com.illusionware.npsbrowser.databinding.ActivityMainBinding import com.illusionware.npsbrowser.databinding.ActivityMainBinding
import kotlinx.android.synthetic.main.appbar.*
import java.io.InputStream import java.io.InputStream
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
@@ -25,9 +28,11 @@ class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
val binding = ActivityMainBinding.inflate(layoutInflater); val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
setSupportActionBar(toolbar)
binding.tsvChooserButton.setOnClickListener { binding.tsvChooserButton.setOnClickListener {
if (!isStoragePermissionGranted()) if (!isStoragePermissionGranted())
return@setOnClickListener return@setOnClickListener
@@ -38,6 +43,21 @@ class MainActivity : AppCompatActivity() {
startActivityForResult(intent, 1) startActivityForResult(intent, 1)
} }
} }
override fun onCreateOptionsMenu(menu : Menu) : Boolean {
menuInflater.inflate(R.menu.toolbar_main, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_settings -> {
true
}
else -> return super.onOptionsItemSelected(item)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
super.onActivityResult(requestCode, resultCode, resultData) super.onActivityResult(requestCode, resultCode, resultData)
if (requestCode == 1 && resultCode == Activity.RESULT_OK) { if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
@@ -49,7 +69,7 @@ class MainActivity : AppCompatActivity() {
entries.forEach { entry -> entries.forEach { entry ->
if (entry["Name"].isNullOrEmpty()) { if (entry["Name"].isNullOrEmpty()) {
return@forEach; return@forEach
} }
val id = entry["Title ID"] val id = entry["Title ID"]
val region = entry["Region"] val region = entry["Region"]
@@ -63,11 +83,11 @@ class MainActivity : AppCompatActivity() {
val minFW = entry["Required FW"] val minFW = entry["Required FW"]
var app = AppData(id, region, name, link ?: "MISSING", license ?: "MISSING", var app = AppData(id, region, name, link ?: "MISSING", license ?: "MISSING",
contentID ?: "MISSING", lastDateTime ?: "MISSING", contentID ?: "MISSING", lastDateTime ?: "MISSING",
fileSize ?: 0, sha256 ?: "MISSING", minFW ?: "MISSING") fileSize ?: 0, sha256 ?: "MISSING", minFW)
apps.add(app) apps.add(app)
} }
apps.sortBy { it.Title } apps.sortBy { it.Title }
AppsListActivity.apps = apps; AppsListActivity.apps = apps
startActivity(myIntent) startActivity(myIntent)
} }
} }
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z"/>
</vector>
@@ -6,6 +6,8 @@
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".activities.MainActivity"> tools:context=".activities.MainActivity">
<include layout="@layout/appbar" />
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/tsvChooserButton" android:id="@+id/tsvChooserButton"
android:layout_width="52dp" android:layout_width="52dp"
+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="afterDescendants"
app:liftOnScroll="true">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/Widget.MaterialComponents.Toolbar.Primary"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:theme="@style/NPSTheme.ActionBar"
app:layout_scrollFlags="scroll|enterAlways|snap" />
</com.google.android.material.appbar.AppBarLayout>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_settings"
app:iconTint="?attr/colorOnPrimary"
android:title="settings"
app:showAsAction="ifRoom" />
</menu>