parent
7a9f5a8364
commit
dc80f62b21
@ -1,119 +1,126 @@ |
|||||||
<?xml version="1.0" encoding="utf-8"?> |
<?xml version="1.0" encoding="utf-8"?> |
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
package="net.pokeranalytics.android"> |
package="net.pokeranalytics.android"> |
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" /> |
<uses-permission android:name="android.permission.INTERNET" /> |
||||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> |
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> |
||||||
|
|
||||||
<application |
<application |
||||||
android:name=".PokerAnalyticsApplication" |
android:name=".PokerAnalyticsApplication" |
||||||
android:allowBackup="true" |
android:allowBackup="true" |
||||||
android:icon="@mipmap/ic_launcher" |
android:icon="@mipmap/ic_launcher" |
||||||
android:label="@string/app_name" |
android:label="@string/app_name" |
||||||
android:roundIcon="@mipmap/ic_launcher_round" |
android:roundIcon="@mipmap/ic_launcher_round" |
||||||
android:supportsRtl="true" |
android:supportsRtl="true" |
||||||
android:theme="@style/PokerAnalyticsTheme"> |
android:theme="@style/PokerAnalyticsTheme"> |
||||||
|
|
||||||
<meta-data |
<meta-data |
||||||
android:name="firebase_crashlytics_collection_enabled" |
android:name="firebase_crashlytics_collection_enabled" |
||||||
android:value="false" /> |
android:value="false" /> |
||||||
|
|
||||||
<activity |
<activity |
||||||
android:name="net.pokeranalytics.android.ui.activity.HomeActivity" |
android:name="net.pokeranalytics.android.ui.activity.HomeActivity" |
||||||
android:label="@string/app_name" |
android:label="@string/app_name" |
||||||
android:screenOrientation="portrait"> |
android:screenOrientation="portrait"> |
||||||
<intent-filter> |
<intent-filter> |
||||||
<action android:name="android.intent.action.MAIN" /> |
<action android:name="android.intent.action.MAIN" /> |
||||||
<action android:name="android.intent.action.VIEW" /> |
<action android:name="android.intent.action.VIEW" /> |
||||||
<category android:name="android.intent.category.LAUNCHER" /> |
|
||||||
</intent-filter> |
<category android:name="android.intent.category.LAUNCHER" /> |
||||||
</activity> |
</intent-filter> |
||||||
|
</activity> |
||||||
<activity |
|
||||||
android:name="net.pokeranalytics.android.ui.activity.SessionActivity" |
<activity |
||||||
android:launchMode="singleTop" |
android:name="net.pokeranalytics.android.ui.activity.SessionActivity" |
||||||
android:screenOrientation="portrait" |
android:launchMode="singleTop" |
||||||
android:windowSoftInputMode="adjustNothing" /> |
android:screenOrientation="portrait" |
||||||
|
android:windowSoftInputMode="adjustNothing" /> |
||||||
<activity |
|
||||||
android:name="net.pokeranalytics.android.ui.activity.BankrollActivity" |
<activity |
||||||
android:launchMode="singleTop" |
android:name="net.pokeranalytics.android.ui.activity.NewDataMenuActivity" |
||||||
android:screenOrientation="portrait" /> |
android:launchMode="singleTop" |
||||||
|
android:screenOrientation="portrait" |
||||||
<activity |
android:theme="@style/PokerAnalyticsTheme.MenuDialog" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.BankrollDetailsActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.BankrollActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<activity |
android:screenOrientation="portrait" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.SettingsActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.BankrollDetailsActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<activity |
android:screenOrientation="portrait" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.StatisticDetailsActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.SettingsActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<activity |
android:screenOrientation="portrait" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.ReportDetailsActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.StatisticDetailsActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<activity |
android:screenOrientation="portrait" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.CalendarDetailsActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.ReportDetailsActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<activity |
android:screenOrientation="portrait" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.ComparisonChartActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.CalendarDetailsActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<activity |
android:screenOrientation="portrait" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.DataListActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.ComparisonChartActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<activity |
android:screenOrientation="portrait" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.EditableDataActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.DataListActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<activity |
android:screenOrientation="portrait" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.CurrenciesActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.EditableDataActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<activity |
android:screenOrientation="portrait" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.FiltersActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.CurrenciesActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<activity |
android:screenOrientation="portrait" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.FilterDetailsActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.FiltersActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<activity |
android:screenOrientation="portrait" /> |
||||||
android:name="net.pokeranalytics.android.ui.activity.GDPRActivity" |
|
||||||
android:launchMode="singleTop" |
<activity |
||||||
android:screenOrientation="portrait" /> |
android:name="net.pokeranalytics.android.ui.activity.FilterDetailsActivity" |
||||||
|
android:launchMode="singleTop" |
||||||
<meta-data |
android:screenOrientation="portrait" /> |
||||||
android:name="preloaded_fonts" |
|
||||||
android:resource="@array/preloaded_fonts" /> |
<activity |
||||||
|
android:name="net.pokeranalytics.android.ui.activity.GDPRActivity" |
||||||
<provider |
android:launchMode="singleTop" |
||||||
android:name="androidx.core.content.FileProvider" |
android:screenOrientation="portrait" /> |
||||||
android:authorities="${applicationId}.fileprovider" |
|
||||||
android:exported="false" |
<meta-data |
||||||
android:grantUriPermissions="true"> |
android:name="preloaded_fonts" |
||||||
<meta-data |
android:resource="@array/preloaded_fonts" /> |
||||||
android:name="android.support.FILE_PROVIDER_PATHS" |
|
||||||
android:resource="@xml/provider_paths" /> |
<provider |
||||||
</provider> |
android:name="androidx.core.content.FileProvider" |
||||||
|
android:authorities="${applicationId}.fileprovider" |
||||||
</application> |
android:exported="false" |
||||||
|
android:grantUriPermissions="true"> |
||||||
|
<meta-data |
||||||
|
android:name="android.support.FILE_PROVIDER_PATHS" |
||||||
|
android:resource="@xml/provider_paths" /> |
||||||
|
</provider> |
||||||
|
|
||||||
|
</application> |
||||||
|
|
||||||
</manifest> |
</manifest> |
||||||
@ -0,0 +1,120 @@ |
|||||||
|
package net.pokeranalytics.android.ui.activity |
||||||
|
|
||||||
|
import android.animation.Animator |
||||||
|
import android.animation.AnimatorListenerAdapter |
||||||
|
import android.content.Context |
||||||
|
import android.content.Intent |
||||||
|
import android.os.Bundle |
||||||
|
import android.view.View |
||||||
|
import android.view.ViewAnimationUtils |
||||||
|
import kotlinx.android.synthetic.main.activity_new_data.* |
||||||
|
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity |
||||||
|
import net.pokeranalytics.android.ui.extensions.px |
||||||
|
|
||||||
|
|
||||||
|
class NewDataMenuActivity : PokerAnalyticsActivity() { |
||||||
|
|
||||||
|
enum class IntentKey(val keyName: String) { |
||||||
|
CHOICE("CHOICE"), |
||||||
|
} |
||||||
|
|
||||||
|
companion object { |
||||||
|
fun newInstance(context: Context) { |
||||||
|
val intent = Intent(context, NewDataMenuActivity::class.java) |
||||||
|
context.startActivity(intent) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private val fabSize = 48.px |
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) { |
||||||
|
super.onCreate(savedInstanceState) |
||||||
|
setContentView(net.pokeranalytics.android.R.layout.activity_new_data) |
||||||
|
initUI() |
||||||
|
} |
||||||
|
|
||||||
|
override fun onBackPressed() { |
||||||
|
hideMenu() |
||||||
|
} |
||||||
|
|
||||||
|
override fun onPause() { |
||||||
|
super.onPause() |
||||||
|
overridePendingTransition(0, 0) |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Init UI |
||||||
|
*/ |
||||||
|
private fun initUI() { |
||||||
|
|
||||||
|
overridePendingTransition(0, 0) |
||||||
|
|
||||||
|
container.viewTreeObserver.addOnGlobalLayoutListener { |
||||||
|
showMenu() |
||||||
|
} |
||||||
|
|
||||||
|
newCashGame.setOnClickListener { |
||||||
|
finishWithResult(0) |
||||||
|
} |
||||||
|
|
||||||
|
newTournament.setOnClickListener { |
||||||
|
finishWithResult(1) |
||||||
|
} |
||||||
|
|
||||||
|
newTransaction.setOnClickListener { |
||||||
|
finishWithResult(2) |
||||||
|
} |
||||||
|
|
||||||
|
container.setOnClickListener { |
||||||
|
hideMenu() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Set the result and hide menu |
||||||
|
*/ |
||||||
|
private fun finishWithResult(choice: Int) { |
||||||
|
val intent = Intent() |
||||||
|
intent.putExtra(IntentKey.CHOICE.keyName, choice) |
||||||
|
setResult(RESULT_OK, intent) |
||||||
|
hideMenu(true) |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Show menu |
||||||
|
*/ |
||||||
|
private fun showMenu() { |
||||||
|
|
||||||
|
val cx = menuContainer.measuredWidth - fabSize / 2 |
||||||
|
val cy = menuContainer.measuredHeight - fabSize / 2 |
||||||
|
val finalRadius = Math.max(menuContainer.width, menuContainer.height) |
||||||
|
val anim = ViewAnimationUtils.createCircularReveal(menuContainer, cx, cy, 0f, finalRadius.toFloat()) |
||||||
|
anim.duration = 300 |
||||||
|
|
||||||
|
menuContainer.visibility = View.VISIBLE |
||||||
|
anim.start() |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Hide menu |
||||||
|
*/ |
||||||
|
private fun hideMenu(hideQuickly: Boolean = false) { |
||||||
|
|
||||||
|
val cx = menuContainer.measuredWidth - fabSize / 2 |
||||||
|
val cy = menuContainer.measuredHeight - fabSize / 2 |
||||||
|
val initialRadius = menuContainer.width |
||||||
|
val anim = ViewAnimationUtils.createCircularReveal(menuContainer, cx, cy, initialRadius.toFloat(), 0f) |
||||||
|
anim.duration = if (hideQuickly) 150 else 300 |
||||||
|
|
||||||
|
anim.addListener(object : AnimatorListenerAdapter() { |
||||||
|
override fun onAnimationEnd(animation: Animator?) { |
||||||
|
super.onAnimationEnd(animation) |
||||||
|
menuContainer.visibility = View.INVISIBLE |
||||||
|
finish() |
||||||
|
} |
||||||
|
}) |
||||||
|
|
||||||
|
anim.start() |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,132 @@ |
|||||||
|
<?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"> |
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout |
||||||
|
android:id="@+id/menuContainer" |
||||||
|
android:layout_width="wrap_content" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:layout_gravity="center" |
||||||
|
android:layout_marginEnd="16dp" |
||||||
|
android:layout_marginBottom="72dp" |
||||||
|
android:background="@android:color/transparent" |
||||||
|
android:elevation="4dp" |
||||||
|
android:orientation="vertical" |
||||||
|
android:visibility="invisible" |
||||||
|
app:layout_constraintBottom_toBottomOf="parent" |
||||||
|
app:layout_constraintEnd_toEndOf="parent" |
||||||
|
tools:visibility="visible"> |
||||||
|
|
||||||
|
<View |
||||||
|
android:layout_width="0dp" |
||||||
|
android:layout_height="0dp" |
||||||
|
android:transitionName="newButtonTransition" |
||||||
|
app:layout_constraintBottom_toBottomOf="parent" |
||||||
|
app:layout_constraintEnd_toEndOf="parent" |
||||||
|
android:background="@color/gray_darker" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
|
app:layout_constraintTop_toTopOf="parent" /> |
||||||
|
|
||||||
|
<LinearLayout |
||||||
|
android:id="@+id/newCashGame" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="48dp" |
||||||
|
android:layout_marginTop="8dp" |
||||||
|
android:background="?selectableItemBackground" |
||||||
|
android:gravity="center_vertical" |
||||||
|
android:orientation="horizontal" |
||||||
|
android:paddingStart="24dp" |
||||||
|
android:paddingEnd="24dp" |
||||||
|
app:layout_constraintEnd_toEndOf="parent" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
|
app:layout_constraintTop_toTopOf="parent"> |
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView |
||||||
|
android:layout_width="32dp" |
||||||
|
android:layout_height="32dp" |
||||||
|
android:tint="@color/green" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
|
app:layout_constraintTop_toTopOf="parent" |
||||||
|
app:srcCompat="@drawable/add_cash_game" /> |
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView |
||||||
|
style="@style/PokerAnalyticsTheme.TextView.RowTitle" |
||||||
|
android:layout_width="160dp" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:layout_marginStart="20dp" |
||||||
|
android:text="@string/new_cash_game" |
||||||
|
app:layout_constraintEnd_toEndOf="parent" /> |
||||||
|
|
||||||
|
</LinearLayout> |
||||||
|
|
||||||
|
<LinearLayout |
||||||
|
android:id="@+id/newTournament" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="48dp" |
||||||
|
android:background="?selectableItemBackground" |
||||||
|
android:gravity="center_vertical" |
||||||
|
android:orientation="horizontal" |
||||||
|
android:paddingStart="24dp" |
||||||
|
android:paddingEnd="24dp" |
||||||
|
app:layout_constraintEnd_toEndOf="parent" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
|
app:layout_constraintTop_toBottomOf="@+id/newCashGame"> |
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView |
||||||
|
android:layout_width="32dp" |
||||||
|
android:layout_height="32dp" |
||||||
|
android:tint="@color/green" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
|
app:layout_constraintTop_toTopOf="parent" |
||||||
|
app:srcCompat="@drawable/add_tournament" /> |
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView |
||||||
|
style="@style/PokerAnalyticsTheme.TextView.RowTitle" |
||||||
|
android:layout_width="160dp" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:layout_marginStart="20dp" |
||||||
|
android:text="@string/new_tournament" |
||||||
|
app:layout_constraintEnd_toEndOf="parent" /> |
||||||
|
|
||||||
|
</LinearLayout> |
||||||
|
|
||||||
|
<LinearLayout |
||||||
|
android:id="@+id/newTransaction" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="48dp" |
||||||
|
android:layout_marginBottom="8dp" |
||||||
|
android:background="?selectableItemBackground" |
||||||
|
android:gravity="center_vertical" |
||||||
|
android:orientation="horizontal" |
||||||
|
android:paddingStart="24dp" |
||||||
|
android:paddingEnd="24dp" |
||||||
|
app:layout_constraintBottom_toBottomOf="parent" |
||||||
|
app:layout_constraintEnd_toEndOf="parent" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
|
app:layout_constraintTop_toBottomOf="@+id/newTournament"> |
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView |
||||||
|
android:layout_width="32dp" |
||||||
|
android:layout_height="32dp" |
||||||
|
android:tint="@color/green" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
|
app:layout_constraintTop_toTopOf="parent" |
||||||
|
app:srcCompat="@drawable/add_transaction" /> |
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView |
||||||
|
style="@style/PokerAnalyticsTheme.TextView.RowTitle" |
||||||
|
android:layout_width="160dp" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:layout_marginStart="20dp" |
||||||
|
android:text="@string/new_operation" |
||||||
|
app:layout_constraintEnd_toEndOf="parent" /> |
||||||
|
|
||||||
|
</LinearLayout> |
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout> |
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout> |
||||||
Loading…
Reference in new issue