Skip to content

Commit

Permalink
Add configure activity, displaying various paths
Browse files Browse the repository at this point in the history
  • Loading branch information
pacien committed Jul 3, 2017
1 parent d221543 commit 328ad55
Show file tree
Hide file tree
Showing 15 changed files with 215 additions and 66 deletions.
6 changes: 6 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@
</intent-filter>
</activity>

<activity
android:name=".activities.ConfigureActivity"
android:parentActivityName=".activities.StartActivity"
android:theme="@style/AppTheme.NoActionBar">
</activity>

<service
android:name="org.pacien.tincapp.service.TincVpnService"
android:permission="android.permission.BIND_VPN_SERVICE">
Expand Down
19 changes: 3 additions & 16 deletions app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
package org.pacien.tincapp.activities

import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
Expand Down Expand Up @@ -45,18 +42,8 @@ abstract class BaseActivity : AppCompatActivity() {
.show()
}

protected fun openWebsite(@StringRes url: Int) {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(resources.getString(url))))
}

protected fun notify(@StringRes msg: Int) {
Snackbar.make(activity_base, msg, Snackbar.LENGTH_LONG).show()
}

protected fun copyIntoClipboard(label: String, str: String) {
val c = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
c.primaryClip = ClipData.newPlainText(label, str)
notify(R.string.message_text_copied)
}
protected fun openWebsite(@StringRes url: Int) = startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(resources.getString(url))))
protected fun notify(@StringRes msg: Int) = Snackbar.make(activity_base, msg, Snackbar.LENGTH_LONG).show()
protected fun notify(msg: String) = Snackbar.make(activity_base, msg, Snackbar.LENGTH_LONG).show()

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.pacien.tincapp.activities

import android.os.Bundle
import android.view.View
import kotlinx.android.synthetic.main.base.*
import kotlinx.android.synthetic.main.page_configure.*
import org.pacien.tincapp.R
import org.pacien.tincapp.context.AppPaths

/**
* @author pacien
*/
class ConfigureActivity : BaseActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
layoutInflater.inflate(R.layout.page_configure, main_content)
writeContent()
}

private fun writeContent() {
text_configuration_directories.text = AppPaths.Storage.values().map { AppPaths.confDir(it) }.joinToString("\n")
text_log_directories.text = AppPaths.Storage.values().map { AppPaths.cacheDir(it) }.joinToString("\n")
text_tinc_binaries.text = listOf(AppPaths.tinc(), AppPaths.tincd()).joinToString("\n")
}

fun generateConf(@Suppress("UNUSED_PARAMETER") v: View) = notify("Not implemented yet")
fun joinNetwork(@Suppress("UNUSED_PARAMETER") v: View) = notify("Not implemented yet")

}
18 changes: 9 additions & 9 deletions app/src/main/java/org/pacien/tincapp/activities/StartActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import android.content.Intent
import android.net.VpnService
import android.os.Bundle
import android.support.v7.app.AlertDialog
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
Expand All @@ -26,6 +28,11 @@ class StartActivity : BaseActivity() {
layoutInflater.inflate(R.layout.page_start, main_content)
}

override fun onCreateOptionsMenu(m: Menu): Boolean {
menuInflater.inflate(R.menu.menu_start, m)
return super.onCreateOptionsMenu(m)
}

override fun onActivityResult(request: Int, result: Int, data: Intent?) {
notify(if (result == Activity.RESULT_OK) R.string.message_vpn_permissions_granted else R.string.message_vpn_permissions_denied)
}
Expand All @@ -45,7 +52,7 @@ class StartActivity : BaseActivity() {
i.setHint(R.string.field_net_name)

@SuppressLint("InflateParams")
val vg = layoutInflater.inflate(R.layout.dialog_frame, null) as ViewGroup
val vg = layoutInflater.inflate(R.layout.dialog_frame, main_content, false) as ViewGroup
vg.addView(i)

AlertDialog.Builder(this)
Expand All @@ -56,14 +63,7 @@ class StartActivity : BaseActivity() {
.show()
}

fun confDirDialog(@Suppress("UNUSED_PARAMETER") v: View) {
AlertDialog.Builder(this)
.setTitle(R.string.title_tinc_config_dir)
.setMessage("Internal: " + AppPaths.confDir(AppPaths.Storage.INTERNAL) + "\n\n" +
"External: " + AppPaths.confDir(AppPaths.Storage.EXTERNAL))
.setPositiveButton(R.string.action_close) { _, _ -> /* nop */ }
.show()
}
fun openConfigureActivity(@Suppress("UNUSED_PARAMETER") i: MenuItem) = startActivity(Intent(this, ConfigureActivity::class.java))

private fun startVpn(netName: String) {
startService(Intent(this, TincVpnService::class.java).putExtra(TincVpnService.INTENT_EXTRA_NET_CONF,
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/res/drawable/horizontal_line.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:height="1dp"/>
<solid android:color="@color/colorPrimaryLighter"/>
</shape>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/ic_build_black_24dp.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<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="@color/textPrimary"
android:pathData="M22.7,19l-9.1,-9.1c0.9,-2.3 0.4,-5 -1.5,-6.9 -2,-2 -5,-2.4 -7.4,-1.3L9,6 6,9 1.6,4.7C0.4,7.1 0.9,10.1 2.9,12.1c1.9,1.9 4.6,2.4 6.9,1.5l9.1,9.1c0.4,0.4 1,0.4 1.4,0l2.3,-2.3c0.5,-0.4 0.5,-1.1 0.1,-1.4z"/>
</vector>
12 changes: 1 addition & 11 deletions app/src/main/res/layout/base.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,11 @@
</android.support.design.widget.AppBarLayout>

<ScrollView
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<FrameLayout
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">

</FrameLayout>

</ScrollView>

</android.support.design.widget.CoordinatorLayout>
81 changes: 81 additions & 0 deletions app/src/main/res/layout/page_configure.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/page_configure"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context="org.pacien.tincapp.activities.ConfigureActivity">

<TextView
style="@style/AppTheme.SectionTitle"
android:text="@string/title_path_info"/>

<LinearLayout style="@style/AppTheme.List">

<LinearLayout style="@style/AppTheme.ListBlock">

<TextView
style="@style/AppTheme.BlockTitle"
android:text="@string/title_configuration_directories"/>

<TextView
android:id="@+id/text_configuration_directories"
style="@style/AppTheme.BlockContent"/>

</LinearLayout>

<LinearLayout style="@style/AppTheme.ListBlock">

<TextView
style="@style/AppTheme.BlockTitle"
android:text="@string/title_log_directories"/>

<TextView
android:id="@+id/text_log_directories"
style="@style/AppTheme.BlockContent"/>

</LinearLayout>

<LinearLayout style="@style/AppTheme.ListBlock">

<TextView
style="@style/AppTheme.BlockTitle"
android:text="@string/title_tinc_binaries"/>

<TextView
android:id="@+id/text_tinc_binaries"
style="@style/AppTheme.BlockContent"/>

</LinearLayout>

</LinearLayout>

<TextView
style="@style/AppTheme.SectionTitle"
android:text="@string/title_tools"/>

<LinearLayout style="@style/AppTheme.List">

<LinearLayout
style="@style/AppTheme.ListBlock.Clickable"
android:onClick="generateConf">

<TextView
style="@style/AppTheme.BlockTitle"
android:text="@string/action_generate_node_configuration_and_keys"/>

</LinearLayout>

<LinearLayout
style="@style/AppTheme.ListBlock.Clickable"
android:onClick="joinNetwork">

<TextView
style="@style/AppTheme.BlockTitle"
android:text="@string/action_join_network_via_invitation_url"/>

</LinearLayout>

</LinearLayout>

</LinearLayout>
18 changes: 1 addition & 17 deletions app/src/main/res/layout/page_start.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fragment_start"
android:id="@+id/page_start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
Expand All @@ -12,11 +12,6 @@
android:text="\nThis is a technical preview of the application, with a minimal user interface that should be sufficient for testing.
\nNo check is performed on user input, and the application will simply crash at the first encountered error (refer to ADB logs)."/>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="\nActions"/>

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
Expand All @@ -29,15 +24,4 @@
android:onClick="startVpnDialog"
android:text="@string/title_connect_to_network"/>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="\nInfo"/>

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="confDirDialog"
android:text="@string/menu_display_conf_dir"/>

</LinearLayout>
14 changes: 14 additions & 0 deletions app/src/main/res/menu/menu_start.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<menu 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"
tools:context="org.pacien.tincapp.activities.StartActivity">

<item
android:id="@+id/menu_about"
android:icon="@drawable/ic_build_black_24dp"
android:onClick="openConfigureActivity"
android:tint="@color/colorAccent"
android:title="@string/menu_configure"
app:showAsAction="ifRoom"/>

</menu>
4 changes: 0 additions & 4 deletions app/src/main/res/values-ja/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,16 @@
<string name="info_supported_abis_format">デバイス ABI: %1$s</string>

<string name="menu_about">このアプリについて</string>
<string name="menu_display_conf_dir">設定ディレクトリを表示</string>

<string name="field_net_name">Tinc ネットワーク名</string>

<string name="title_tinc_config_dir">Tinc 設定ディレクトリ</string>
<string name="title_connect_to_network">ネットワークに接続</string>
<string name="title_request_vpn_permissions">VPN 権限のリクエスト</string>

<string name="action_close">閉じる</string>
<string name="action_copy">コピー</string>
<string name="action_open_project_website">プロジェクト Web サイト</string>
<string name="action_connect">接続</string>

<string name="message_text_copied">テキストをクリップボードにコピーしました。</string>
<string name="message_vpn_permissions_granted">VPN 権限を付与しました。</string>
<string name="message_vpn_permissions_denied">VPN 権限が拒否されました。</string>
</resources>
4 changes: 0 additions & 4 deletions app/src/main/res/values-nb-rNO/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,16 @@
<string name="info_supported_abis_format">Enhets-binærkompabilitet: %1$s</string>

<string name="menu_about">Om</string>
<string name="menu_display_conf_dir">Vis oppsettsmappe</string>

<string name="field_net_name">Tinc-nettverksnavn</string>

<string name="title_tinc_config_dir">Oppsettsmappe for Tinc</string>
<string name="title_connect_to_network">Koble til nettverk</string>
<string name="title_request_vpn_permissions">Forespør VPN-tilganger</string>

<string name="action_close">Lukk</string>
<string name="action_copy">Kopier</string>
<string name="action_open_project_website">Prosjektets nettside</string>
<string name="action_connect">Koble til</string>

<string name="message_text_copied">Tekst kopiert til utklippstavle.</string>
<string name="message_vpn_permissions_granted">VPN-tilganger gitt.</string>
<string name="message_vpn_permissions_denied">VPN-tilganger nektet.</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,7 @@
<color name="textPrimary">#FFFFFFFF</color>
<color name="colorPrimary">#424242</color>
<color name="colorPrimaryDark">#212121</color>
<color name="colorAccent">#FBC02D</color>
<color name="colorPrimaryLight">#757575</color>
<color name="colorPrimaryLighter">#d9d9d9</color>
<color name="colorAccent">#f9a825</color>
</resources>
12 changes: 8 additions & 4 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,24 @@
<string name="info_supported_abis_format">Device ABIs: %1$s</string>

<string name="menu_about">About this app</string>
<string name="menu_display_conf_dir">Show configuration directory</string>
<string name="menu_configure">Configure</string>

<string name="field_net_name">Tinc network name</string>

<string name="title_tinc_config_dir">Tinc config directory</string>
<string name="title_connect_to_network">Connect to network</string>
<string name="title_request_vpn_permissions">Request VPN permissions</string>
<string name="title_path_info">Path info</string>
<string name="title_tools">Tools</string>
<string name="title_configuration_directories">Configuration directories</string>
<string name="title_log_directories">Log directories</string>
<string name="title_tinc_binaries">Tinc binaries</string>

<string name="action_close">Close</string>
<string name="action_copy">Copy</string>
<string name="action_open_project_website">Project website</string>
<string name="action_connect">Connect</string>
<string name="action_generate_node_configuration_and_keys">Generate node configuration and keys</string>
<string name="action_join_network_via_invitation_url">Join network via invitation URL</string>

<string name="message_text_copied">Text copied to clipboard.</string>
<string name="message_vpn_permissions_granted">VPN permissions granted.</string>
<string name="message_vpn_permissions_denied">VPN permissions denied.</string>
</resources>

0 comments on commit 328ad55

Please sign in to comment.