From 07a7b819571a939c9fbeeeb2f4f76b8c301c2bdb Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Tue, 15 May 2018 15:43:19 +0200
Subject: [PATCH] Fixes #42

---
 .../ui/clientsettings/about/AboutFragment.kt     | 16 ++++++++++++++++
 .../main/res/layout/preferences_about_header.xml |  4 ++++
 app/src/main/res/values-de/strings.xml           |  4 +++-
 app/src/main/res/values/strings.xml              |  2 ++
 4 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragment.kt
index 86bd2b5d0..c3f7f9b74 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragment.kt
@@ -19,6 +19,9 @@
 
 package de.kuschku.quasseldroid.ui.clientsettings.about
 
+import android.content.ClipData
+import android.content.ClipboardManager
+import android.content.Context
 import android.content.Intent
 import android.net.Uri
 import android.os.Bundle
@@ -31,6 +34,7 @@ import android.view.View
 import android.view.ViewGroup
 import android.widget.Button
 import android.widget.TextView
+import android.widget.Toast
 import butterknife.BindView
 import butterknife.ButterKnife
 import dagger.android.support.DaggerFragment
@@ -39,6 +43,9 @@ import de.kuschku.quasseldroid.R
 
 class AboutFragment : DaggerFragment() {
 
+  @BindView(R.id.version_container)
+  lateinit var versionContainer: View
+
   @BindView(R.id.version)
   lateinit var version: TextView
 
@@ -64,6 +71,13 @@ class AboutFragment : DaggerFragment() {
 
     version.text = BuildConfig.VERSION_NAME
 
+    versionContainer.setOnClickListener {
+      val clipboard = requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
+      val clip = ClipData.newPlainText(null, BuildConfig.VERSION_NAME)
+      clipboard.primaryClip = clip
+      Toast.makeText(requireContext(), R.string.info_copied_version, Toast.LENGTH_LONG).show()
+    }
+
     website.setOnClickListener {
       val intent = Intent(Intent.ACTION_VIEW)
       intent.data = Uri.parse("https://quasseldroid.info/")
@@ -89,6 +103,7 @@ class AboutFragment : DaggerFragment() {
     )
 
     libraries.layoutManager = LinearLayoutManager(context)
+    libraries.itemAnimator = null
     libraries.adapter = LibraryAdapter(listOf(
       Library(
         name = "Android Architecture Components: Lifecycle",
@@ -305,6 +320,7 @@ class AboutFragment : DaggerFragment() {
     ViewCompat.setNestedScrollingEnabled(libraries, false)
 
     contributors.layoutManager = LinearLayoutManager(context)
+    contributors.itemAnimator = null
     contributors.adapter = ContributorAdapter(listOf(
       Contributor(
         name = "Frederik M. J. Vestre",
diff --git a/app/src/main/res/layout/preferences_about_header.xml b/app/src/main/res/layout/preferences_about_header.xml
index e779db73b..9c9c5201c 100644
--- a/app/src/main/res/layout/preferences_about_header.xml
+++ b/app/src/main/res/layout/preferences_about_header.xml
@@ -30,8 +30,12 @@
   android:paddingTop="?listPreferredItemHeight">
 
   <LinearLayout
+    android:id="@+id/version_container"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:background="?selectableItemBackground"
+    android:clickable="true"
+    android:focusable="true"
     android:orientation="horizontal">
 
     <android.support.v7.widget.AppCompatImageView
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index adf9a2d49..e87ce65ed 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -114,4 +114,6 @@
   <string name="delete_confirmation">Bist du sicher, dass du dies auf ewig löschen möchtest? Dies kann nicht Rückgängig gemacht werden.</string>
   <string name="cancel_confirmation">Du hast nicht gespeicherte Änderungen. Möchtest du sie verwerfen?</string>
 
-  </resources>
+  <string name="info_copied_version">Version in die Zwischenablage kopiert</string>
+
+</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e2d421179..e3019f061 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -118,5 +118,7 @@
   <string name="delete_confirmation">Are you sure you want to delete this permanently? This can not be undone.</string>
   <string name="cancel_confirmation">You have unsaved changes. Do you wish to discard them?</string>
 
+  <string name="info_copied_version">Version copied to clipboard</string>
+
   <string name="drag_intercept_bottom_sheet_behavior" translatable="false">de.kuschku.quasseldroid.util.ui.DragInterceptBottomSheetBehavior</string>
 </resources>
-- 
GitLab