1/*
2 * Nextcloud - Android Client
3 *
4 * SPDX-FileCopyrightText: 2019 Chris Narkiewicz <hello@ezaquarii.com>
5 * SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
6 */
7package com.nextcloud.client.etm.pages
8
9import android.content.Intent
10import android.os.Bundle
11import android.view.LayoutInflater
12import android.view.Menu
13import android.view.MenuInflater
14import android.view.MenuItem
15import android.view.View
16import android.view.ViewGroup
17import com.nextcloud.client.etm.EtmBaseFragment
18import com.owncloud.android.R
19import com.owncloud.android.databinding.FragmentEtmPreferencesBinding
20
21class EtmPreferencesFragment : EtmBaseFragment() {
22 private var _binding: FragmentEtmPreferencesBinding? = null
23 val binding get() = _binding!!
24
25 override fun onCreate(savedInstanceState: Bundle?) {
26 super.onCreate(savedInstanceState)
27 setHasOptionsMenu(true)
28 }
29
30 override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
31 _binding = FragmentEtmPreferencesBinding.inflate(inflater, container, false)
32
33 return binding.root
34 }
35
36 override fun onResume() {
37 super.onResume()
38 val builder = StringBuilder()
39 vm.preferences.forEach { builder.append("${it.key}: ${it.value}\n") }
40 binding.etmPreferencesText.text = builder
41 }
42
43 override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
44 super.onCreateOptionsMenu(menu, inflater)
45 inflater.inflate(R.menu.fragment_etm_preferences, menu)
46 }
47
48 override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) {
49 R.id.etm_preferences_share -> {
50 onClickedShare()
51 true
52 }
53 else -> super.onOptionsItemSelected(item)
54 }
55
56 private fun onClickedShare() {
57 val intent = Intent(Intent.ACTION_SEND)
58 intent.putExtra(Intent.EXTRA_SUBJECT, "Nextcloud preferences")
59 intent.putExtra(Intent.EXTRA_TEXT, binding.etmPreferencesText.text)
60 intent.type = "text/plain"
61 startActivity(intent)
62 }
63
64 override fun onDestroyView() {
65 super.onDestroyView()
66
67 _binding = null
68 }
69}
70