remove unnecessary elements
This commit is contained in:
parent
1bc42f4f59
commit
494126e985
|
@ -16,11 +16,11 @@
|
|||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity android:name=".InitActivity"></activity>
|
||||
<activity android:name=".PairingActivity" />
|
||||
<activity android:name=".PINActivity" />
|
||||
<activity android:name=".ui.InitActivity"></activity>
|
||||
<activity android:name=".ui.PairingActivity" />
|
||||
<activity android:name=".ui.PINActivity" />
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:name=".ui.MainActivity"
|
||||
android:label="@string/app_name">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
|
|
@ -2,10 +2,10 @@ package im.status.keycard.connect.card
|
|||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import im.status.keycard.connect.INIT_ACTIVITY_PAIRING
|
||||
import im.status.keycard.connect.INIT_ACTIVITY_PIN
|
||||
import im.status.keycard.connect.INIT_ACTIVITY_PUK
|
||||
import im.status.keycard.connect.InitActivity
|
||||
import im.status.keycard.connect.ui.INIT_ACTIVITY_PAIRING
|
||||
import im.status.keycard.connect.ui.INIT_ACTIVITY_PIN
|
||||
import im.status.keycard.connect.ui.INIT_ACTIVITY_PUK
|
||||
import im.status.keycard.connect.ui.InitActivity
|
||||
import im.status.keycard.connect.data.PairingManager
|
||||
import im.status.keycard.io.APDUException
|
||||
import java.io.IOException
|
||||
|
|
|
@ -3,8 +3,9 @@ package im.status.keycard.connect.card
|
|||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import im.status.keycard.applet.KeycardCommandSet
|
||||
import im.status.keycard.connect.*
|
||||
import im.status.keycard.connect.data.PairingManager
|
||||
import im.status.keycard.connect.ui.PAIRING_ACTIVITY_PASSWORD
|
||||
import im.status.keycard.connect.ui.PairingActivity
|
||||
import java.io.IOException
|
||||
|
||||
class OpenSecureChannelCommand : CardCommand {
|
||||
|
|
|
@ -2,9 +2,9 @@ package im.status.keycard.connect.card
|
|||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import im.status.keycard.connect.PINActivity
|
||||
import im.status.keycard.connect.PIN_ACTIVITY_ATTEMPTS
|
||||
import im.status.keycard.connect.PIN_ACTIVITY_CARD_UID
|
||||
import im.status.keycard.connect.ui.PINActivity
|
||||
import im.status.keycard.connect.ui.PIN_ACTIVITY_ATTEMPTS
|
||||
import im.status.keycard.connect.ui.PIN_ACTIVITY_CARD_UID
|
||||
import im.status.keycard.connect.data.PINCache
|
||||
import im.status.keycard.io.APDUException
|
||||
import im.status.keycard.io.WrongPINException
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package im.status.keycard.connect
|
||||
package im.status.keycard.connect.ui
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
|
@ -10,6 +10,7 @@ import im.status.keycard.globalplatform.Crypto
|
|||
import android.util.Base64.NO_PADDING
|
||||
import android.util.Base64.NO_WRAP
|
||||
import android.widget.TextView
|
||||
import im.status.keycard.connect.R
|
||||
|
||||
|
||||
const val INIT_ACTIVITY_PIN = "initPIN"
|
|
@ -1,15 +1,11 @@
|
|||
package im.status.keycard.connect
|
||||
package im.status.keycard.connect.ui
|
||||
|
||||
import android.nfc.NfcAdapter
|
||||
import android.os.Bundle
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.navigation.ui.AppBarConfiguration
|
||||
import androidx.navigation.ui.setupActionBarWithNavController
|
||||
import androidx.navigation.ui.setupWithNavController
|
||||
import im.status.keycard.android.NFCCardManager
|
||||
import android.content.Intent
|
||||
import im.status.keycard.connect.R
|
||||
import im.status.keycard.connect.card.*
|
||||
import im.status.keycard.connect.data.PairingManager
|
||||
|
||||
|
@ -21,11 +17,7 @@ class MainActivity : AppCompatActivity() {
|
|||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
val navView: BottomNavigationView = findViewById(R.id.nav_view)
|
||||
|
||||
val navController = findNavController(R.id.nav_host_fragment)
|
||||
|
||||
val appBarConfiguration = AppBarConfiguration(setOf(R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications))
|
||||
|
||||
PairingManager.init(this)
|
||||
|
||||
|
@ -36,9 +28,6 @@ class MainActivity : AppCompatActivity() {
|
|||
cardManager = NFCCardManager()
|
||||
cardManager.setCardListener(executor)
|
||||
cardManager.start()
|
||||
|
||||
setupActionBarWithNavController(navController, appBarConfiguration)
|
||||
navView.setupWithNavController(navController)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
|
@ -1,12 +1,12 @@
|
|||
package im.status.keycard.connect
|
||||
package im.status.keycard.connect.ui
|
||||
|
||||
import android.app.Activity
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.View.INVISIBLE
|
||||
import android.widget.EditText
|
||||
import android.widget.TextView
|
||||
import im.status.keycard.connect.R
|
||||
import im.status.keycard.connect.data.PINCache
|
||||
|
||||
const val PIN_ACTIVITY_ATTEMPTS = "remainingAttempts"
|
|
@ -1,14 +1,12 @@
|
|||
package im.status.keycard.connect
|
||||
package im.status.keycard.connect.ui
|
||||
|
||||
import android.app.Activity
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.EditText
|
||||
import im.status.keycard.connect.data.PINCache
|
||||
import android.content.Intent
|
||||
import androidx.core.app.ComponentActivity.ExtraData
|
||||
import androidx.core.content.ContextCompat.getSystemService
|
||||
import im.status.keycard.connect.R
|
||||
|
||||
const val PAIRING_ACTIVITY_PASSWORD = "pairingPassword"
|
||||
|
||||
|
@ -21,7 +19,10 @@ class PairingActivity : AppCompatActivity() {
|
|||
|
||||
fun ok(view: View) {
|
||||
val intent = Intent()
|
||||
intent.putExtra(PAIRING_ACTIVITY_PASSWORD, findViewById<EditText>(R.id.passwordText).text.toString())
|
||||
intent.putExtra(
|
||||
PAIRING_ACTIVITY_PASSWORD, findViewById<EditText>(
|
||||
R.id.passwordText
|
||||
).text.toString())
|
||||
setResult(Activity.RESULT_OK, intent)
|
||||
finish()
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
package im.status.keycard.connect.ui.dashboard
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import im.status.keycard.connect.R
|
||||
|
||||
class DashboardFragment : Fragment() {
|
||||
|
||||
private lateinit var dashboardViewModel: DashboardViewModel
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
dashboardViewModel = ViewModelProviders.of(this).get(DashboardViewModel::class.java)
|
||||
val root = inflater.inflate(R.layout.fragment_dashboard, container, false)
|
||||
val textView: TextView = root.findViewById(R.id.text_dashboard)
|
||||
dashboardViewModel.text.observe(this, Observer {
|
||||
textView.text = it
|
||||
})
|
||||
return root
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
package im.status.keycard.connect.ui.dashboard
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
|
||||
class DashboardViewModel : ViewModel() {
|
||||
|
||||
private val _text = MutableLiveData<String>().apply {
|
||||
value = "This is dashboard Fragment"
|
||||
}
|
||||
val text: LiveData<String> = _text
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
package im.status.keycard.connect.ui.home
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import im.status.keycard.connect.R
|
||||
|
||||
class HomeFragment : Fragment() {
|
||||
|
||||
private lateinit var homeViewModel: HomeViewModel
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
homeViewModel = ViewModelProviders.of(this).get(HomeViewModel::class.java)
|
||||
|
||||
val root = inflater.inflate(R.layout.fragment_home, container, false)
|
||||
val textView: TextView = root.findViewById(R.id.text_home)
|
||||
|
||||
homeViewModel.text.observe(this, Observer {
|
||||
textView.text = it
|
||||
})
|
||||
|
||||
return root
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
package im.status.keycard.connect.ui.home
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
|
||||
class HomeViewModel : ViewModel() {
|
||||
|
||||
private val _text = MutableLiveData<String>().apply {
|
||||
value = "This is home Fragment"
|
||||
}
|
||||
val text: LiveData<String> = _text
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
package im.status.keycard.connect.ui.notifications
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import im.status.keycard.connect.R
|
||||
|
||||
class NotificationsFragment : Fragment() {
|
||||
private lateinit var notificationsViewModel: NotificationsViewModel
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
notificationsViewModel = ViewModelProviders.of(this).get(NotificationsViewModel::class.java)
|
||||
val root = inflater.inflate(R.layout.fragment_notifications, container, false)
|
||||
val textView: TextView = root.findViewById(R.id.text_notifications)
|
||||
notificationsViewModel.text.observe(this, Observer {
|
||||
textView.text = it
|
||||
})
|
||||
return root
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
package im.status.keycard.connect.ui.notifications
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
|
||||
class NotificationsViewModel : ViewModel() {
|
||||
|
||||
private val _text = MutableLiveData<String>().apply {
|
||||
value = "This is notifications Fragment"
|
||||
}
|
||||
val text: LiveData<String> = _text
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M3,13h8L11,3L3,3v10zM3,21h8v-6L3,15v6zM13,21h8L21,11h-8v10zM13,3v6h8L21,3h-8z" />
|
||||
</vector>
|
|
@ -1,9 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
|
||||
</vector>
|
|
@ -1,9 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z" />
|
||||
</vector>
|
|
@ -4,7 +4,7 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".InitActivity">
|
||||
tools:context=".ui.InitActivity">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pinView"
|
||||
|
|
|
@ -1,33 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingTop="?attr/actionBarSize">
|
||||
|
||||
<com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
android:id="@+id/nav_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="0dp"
|
||||
android:layout_marginEnd="0dp"
|
||||
android:background="?android:attr/windowBackground"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:menu="@menu/bottom_nav_menu" />
|
||||
|
||||
<fragment
|
||||
android:id="@+id/nav_host_fragment"
|
||||
android:name="androidx.navigation.fragment.NavHostFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:defaultNavHost="true"
|
||||
app:layout_constraintBottom_toTopOf="@id/nav_view"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:navGraph="@navigation/mobile_navigation" />
|
||||
android:paddingTop="?attr/actionBarSize"
|
||||
tools:context=".ui.MainActivity">
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -4,7 +4,7 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".PairingActivity">
|
||||
tools:context=".ui.PairingActivity">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/passwordPrompt"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".PINActivity">
|
||||
tools:context=".ui.PINActivity">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/pinText"
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_dashboard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:textAlignment="center"
|
||||
android:textSize="20sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -1,19 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_home"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:textAlignment="center"
|
||||
android:textSize="20sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -1,19 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_notifications"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:textAlignment="center"
|
||||
android:textSize="20sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -1,19 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item
|
||||
android:id="@+id/navigation_home"
|
||||
android:icon="@drawable/ic_home_black_24dp"
|
||||
android:title="@string/title_home" />
|
||||
|
||||
<item
|
||||
android:id="@+id/navigation_dashboard"
|
||||
android:icon="@drawable/ic_dashboard_black_24dp"
|
||||
android:title="@string/title_dashboard" />
|
||||
|
||||
<item
|
||||
android:id="@+id/navigation_notifications"
|
||||
android:icon="@drawable/ic_notifications_black_24dp"
|
||||
android:title="@string/title_notifications" />
|
||||
|
||||
</menu>
|
|
@ -1,25 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/mobile_navigation"
|
||||
app:startDestination="@+id/navigation_home">
|
||||
|
||||
<fragment
|
||||
android:id="@+id/navigation_home"
|
||||
android:name="im.status.keycard.connect.ui.home.HomeFragment"
|
||||
android:label="@string/title_home"
|
||||
tools:layout="@layout/fragment_home" />
|
||||
|
||||
<fragment
|
||||
android:id="@+id/navigation_dashboard"
|
||||
android:name="im.status.keycard.connect.ui.dashboard.DashboardFragment"
|
||||
android:label="@string/title_dashboard"
|
||||
tools:layout="@layout/fragment_dashboard" />
|
||||
|
||||
<fragment
|
||||
android:id="@+id/navigation_notifications"
|
||||
android:name="im.status.keycard.connect.ui.notifications.NotificationsFragment"
|
||||
android:label="@string/title_notifications"
|
||||
tools:layout="@layout/fragment_notifications" />
|
||||
</navigation>
|
|
@ -1,8 +1,5 @@
|
|||
<resources>
|
||||
<string name="app_name">Keycard Connect</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_dashboard">Dashboard</string>
|
||||
<string name="title_notifications">Notifications</string>
|
||||
<string name="pin_prompt">Insert your PIN</string>
|
||||
<string name="pin_attempts">%1$d retries left</string>
|
||||
<string name="pairing_password_prompt">Insert your pairing password</string>
|
||||
|
|
Loading…
Reference in New Issue