mirror of
https://github.com/IllusionMan1212/NPS-Browser.git
synced 2026-10-24 02:12:37 +00:00
Add toolbar and misc
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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>
|
||||||
Reference in New Issue
Block a user