Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
com.ccwangluo.accelerator
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sheteng
com.ccwangluo.accelerator
Commits
6ee97f6d
Commit
6ee97f6d
authored
Aug 22, 2018
by
Mygod
Committed by
Max Lv
Aug 28, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix keyboard shortcuts
Actually they never worked lol.
parent
860f3bca
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
69 additions
and
83 deletions
+69
-83
build.gradle
build.gradle
+1
-1
mobile/src/main/java/com/github/shadowsocks/AppManager.kt
mobile/src/main/java/com/github/shadowsocks/AppManager.kt
+12
-14
mobile/src/main/java/com/github/shadowsocks/MainActivity.kt
mobile/src/main/java/com/github/shadowsocks/MainActivity.kt
+9
-0
mobile/src/main/java/com/github/shadowsocks/ProfileConfigActivity.kt
...main/java/com/github/shadowsocks/ProfileConfigActivity.kt
+13
-7
mobile/src/main/java/com/github/shadowsocks/ProfileConfigFragment.kt
...main/java/com/github/shadowsocks/ProfileConfigFragment.kt
+2
-3
mobile/src/main/java/com/github/shadowsocks/ScannerActivity.kt
...e/src/main/java/com/github/shadowsocks/ScannerActivity.kt
+12
-20
mobile/src/main/java/com/github/shadowsocks/ToolbarFragment.kt
...e/src/main/java/com/github/shadowsocks/ToolbarFragment.kt
+1
-1
mobile/src/main/res/menu/app_manager_menu.xml
mobile/src/main/res/menu/app_manager_menu.xml
+2
-2
mobile/src/main/res/menu/custom_rules_menu.xml
mobile/src/main/res/menu/custom_rules_menu.xml
+4
-9
mobile/src/main/res/menu/custom_rules_selection.xml
mobile/src/main/res/menu/custom_rules_selection.xml
+1
-1
mobile/src/main/res/menu/profile_config_menu.xml
mobile/src/main/res/menu/profile_config_menu.xml
+3
-3
mobile/src/main/res/menu/profile_manager_menu.xml
mobile/src/main/res/menu/profile_manager_menu.xml
+6
-15
mobile/src/main/res/menu/profile_share_popup.xml
mobile/src/main/res/menu/profile_share_popup.xml
+2
-6
mobile/src/main/res/menu/scanner_menu.xml
mobile/src/main/res/menu/scanner_menu.xml
+1
-1
No files found.
build.gradle
View file @
6ee97f6d
...
@@ -4,7 +4,7 @@ apply plugin: 'com.github.ben-manes.versions'
...
@@ -4,7 +4,7 @@ apply plugin: 'com.github.ben-manes.versions'
buildscript
{
buildscript
{
ext
{
ext
{
kotlinVersion
=
'1.2.6
0
'
kotlinVersion
=
'1.2.6
1
'
minSdkVersion
=
21
minSdkVersion
=
21
sdkVersion
=
28
sdkVersion
=
28
compileSdkVersion
=
28
compileSdkVersion
=
28
...
...
mobile/src/main/java/com/github/shadowsocks/AppManager.kt
View file @
6ee97f6d
...
@@ -38,7 +38,6 @@ import android.widget.ImageView
...
@@ -38,7 +38,6 @@ import android.widget.ImageView
import
android.widget.Switch
import
android.widget.Switch
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.widget.Toolbar
import
androidx.appcompat.widget.Toolbar
import
androidx.core.app.TaskStackBuilder
import
androidx.core.content.getSystemService
import
androidx.core.content.getSystemService
import
androidx.recyclerview.widget.DefaultItemAnimator
import
androidx.recyclerview.widget.DefaultItemAnimator
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.LinearLayoutManager
...
@@ -46,11 +45,13 @@ import androidx.recyclerview.widget.RecyclerView
...
@@ -46,11 +45,13 @@ import androidx.recyclerview.widget.RecyclerView
import
com.github.shadowsocks.App.Companion.app
import
com.github.shadowsocks.App.Companion.app
import
com.github.shadowsocks.database.ProfileManager
import
com.github.shadowsocks.database.ProfileManager
import
com.github.shadowsocks.preference.DataStore
import
com.github.shadowsocks.preference.DataStore
import
com.github.shadowsocks.utils.*
import
com.github.shadowsocks.utils.DirectBoot
import
com.github.shadowsocks.utils.Key
import
com.github.shadowsocks.utils.thread
import
com.google.android.material.snackbar.Snackbar
import
com.google.android.material.snackbar.Snackbar
import
java.util.concurrent.atomic.AtomicBoolean
import
java.util.concurrent.atomic.AtomicBoolean
class
AppManager
:
AppCompatActivity
()
,
Toolbar
.
OnMenuItemClickListener
{
class
AppManager
:
AppCompatActivity
()
{
companion
object
{
companion
object
{
@SuppressLint
(
"StaticFieldLeak"
)
@SuppressLint
(
"StaticFieldLeak"
)
private
var
instance
:
AppManager
?
=
null
private
var
instance
:
AppManager
?
=
null
...
@@ -170,15 +171,8 @@ class AppManager : AppCompatActivity(), Toolbar.OnMenuItemClickListener {
...
@@ -170,15 +171,8 @@ class AppManager : AppCompatActivity(), Toolbar.OnMenuItemClickListener {
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
setContentView
(
R
.
layout
.
layout_apps
)
setContentView
(
R
.
layout
.
layout_apps
)
toolbar
=
findViewById
(
R
.
id
.
toolbar
)
toolbar
=
findViewById
(
R
.
id
.
toolbar
)
toolbar
.
setTitle
(
R
.
string
.
proxied_apps
)
setSupportActionBar
(
toolbar
)
toolbar
.
setNavigationIcon
(
theme
.
resolveResourceId
(
R
.
attr
.
homeAsUpIndicator
))
supportActionBar
!!
.
setDisplayHomeAsUpEnabled
(
true
)
toolbar
.
setNavigationOnClickListener
{
val
intent
=
parentActivityIntent
if
(
intent
==
null
||
!
shouldUpRecreateTask
(
intent
)
&&
!
isTaskRoot
)
finish
()
else
TaskStackBuilder
.
create
(
this
).
addNextIntentWithParentStack
(
intent
).
startActivities
()
}
toolbar
.
inflateMenu
(
R
.
menu
.
app_manager_menu
)
toolbar
.
setOnMenuItemClickListener
(
this
)
if
(!
DataStore
.
proxyApps
)
{
if
(!
DataStore
.
proxyApps
)
{
DataStore
.
proxyApps
=
true
DataStore
.
proxyApps
=
true
...
@@ -208,8 +202,12 @@ class AppManager : AppCompatActivity(), Toolbar.OnMenuItemClickListener {
...
@@ -208,8 +202,12 @@ class AppManager : AppCompatActivity(), Toolbar.OnMenuItemClickListener {
loadAppsAsync
()
loadAppsAsync
()
}
}
override
fun
onMenuItemClick
(
item
:
MenuItem
):
Boolean
{
override
fun
onCreateOptionsMenu
(
menu
:
Menu
?):
Boolean
{
when
(
item
.
itemId
)
{
menuInflater
.
inflate
(
R
.
menu
.
app_manager_menu
,
menu
)
return
true
}
override
fun
onOptionsItemSelected
(
item
:
MenuItem
?):
Boolean
{
when
(
item
?.
itemId
)
{
R
.
id
.
action_apply_all
->
{
R
.
id
.
action_apply_all
->
{
val
profiles
=
ProfileManager
.
getAllProfiles
()
val
profiles
=
ProfileManager
.
getAllProfiles
()
if
(
profiles
!=
null
)
{
if
(
profiles
!=
null
)
{
...
...
mobile/src/main/java/com/github/shadowsocks/MainActivity.kt
View file @
6ee97f6d
...
@@ -31,6 +31,8 @@ import android.nfc.NdefMessage
...
@@ -31,6 +31,8 @@ import android.nfc.NdefMessage
import
android.nfc.NfcAdapter
import
android.nfc.NfcAdapter
import
android.os.Bundle
import
android.os.Bundle
import
android.util.Log
import
android.util.Log
import
android.view.KeyCharacterMap
import
android.view.KeyEvent
import
android.view.MenuItem
import
android.view.MenuItem
import
android.view.View
import
android.view.View
import
androidx.appcompat.app.AlertDialog
import
androidx.appcompat.app.AlertDialog
...
@@ -269,6 +271,13 @@ class MainActivity : AppCompatActivity(), ShadowsocksConnection.Interface, OnPre
...
@@ -269,6 +271,13 @@ class MainActivity : AppCompatActivity(), ShadowsocksConnection.Interface, OnPre
}
}
}
}
override
fun
onKeyShortcut
(
keyCode
:
Int
,
event
:
KeyEvent
?)
=
(
supportFragmentManager
.
findFragmentById
(
R
.
id
.
fragment_holder
)
as
ToolbarFragment
).
toolbar
.
menu
.
let
{
it
.
setQwertyMode
(
KeyCharacterMap
.
load
(
event
?.
deviceId
?:
KeyCharacterMap
.
VIRTUAL_KEYBOARD
).
keyboardType
!=
KeyCharacterMap
.
NUMERIC
)
it
.
performShortcut
(
keyCode
,
event
,
0
)
}
override
fun
onStop
()
{
override
fun
onStop
()
{
connection
.
listeningForBandwidth
=
false
connection
.
listeningForBandwidth
=
false
super
.
onStop
()
super
.
onStop
()
...
...
mobile/src/main/java/com/github/shadowsocks/ProfileConfigActivity.kt
View file @
6ee97f6d
...
@@ -23,9 +23,10 @@ package com.github.shadowsocks
...
@@ -23,9 +23,10 @@ package com.github.shadowsocks
import
android.app.Activity
import
android.app.Activity
import
android.content.Intent
import
android.content.Intent
import
android.os.Bundle
import
android.os.Bundle
import
android.view.Menu
import
android.view.MenuItem
import
androidx.appcompat.app.AlertDialog
import
androidx.appcompat.app.AlertDialog
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.widget.Toolbar
import
com.github.shadowsocks.plugin.PluginContract
import
com.github.shadowsocks.plugin.PluginContract
import
com.github.shadowsocks.preference.DataStore
import
com.github.shadowsocks.preference.DataStore
...
@@ -39,14 +40,19 @@ class ProfileConfigActivity : AppCompatActivity() {
...
@@ -39,14 +40,19 @@ class ProfileConfigActivity : AppCompatActivity() {
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
setContentView
(
R
.
layout
.
layout_profile_config
)
setContentView
(
R
.
layout
.
layout_profile_config
)
val
toolbar
=
findViewById
<
Toolbar
>(
R
.
id
.
toolbar
)
setSupportActionBar
(
findViewById
(
R
.
id
.
toolbar
))
toolbar
.
setTitle
(
R
.
string
.
profile_config
)
supportActionBar
!!
.
apply
{
toolbar
.
setNavigationIcon
(
R
.
drawable
.
ic_navigation_close
)
setDisplayHomeAsUpEnabled
(
true
)
toolbar
.
setNavigationOnClickListener
{
onBackPressed
()
}
setHomeAsUpIndicator
(
R
.
drawable
.
ic_navigation_close
)
toolbar
.
inflateMenu
(
R
.
menu
.
profile_config_menu
)
}
toolbar
.
setOnMenuItemClickListener
(
child
)
}
}
override
fun
onCreateOptionsMenu
(
menu
:
Menu
?):
Boolean
{
menuInflater
.
inflate
(
R
.
menu
.
profile_config_menu
,
menu
)
return
true
}
override
fun
onOptionsItemSelected
(
item
:
MenuItem
?)
=
child
.
onOptionsItemSelected
(
item
)
override
fun
onBackPressed
()
{
override
fun
onBackPressed
()
{
if
(
DataStore
.
dirty
)
AlertDialog
.
Builder
(
this
)
if
(
DataStore
.
dirty
)
AlertDialog
.
Builder
(
this
)
.
setTitle
(
R
.
string
.
unsaved_changes_prompt
)
.
setTitle
(
R
.
string
.
unsaved_changes_prompt
)
...
...
mobile/src/main/java/com/github/shadowsocks/ProfileConfigFragment.kt
View file @
6ee97f6d
...
@@ -28,7 +28,6 @@ import android.os.Bundle
...
@@ -28,7 +28,6 @@ import android.os.Bundle
import
android.os.UserManager
import
android.os.UserManager
import
android.view.MenuItem
import
android.view.MenuItem
import
androidx.appcompat.app.AlertDialog
import
androidx.appcompat.app.AlertDialog
import
androidx.appcompat.widget.Toolbar
import
androidx.core.content.getSystemService
import
androidx.core.content.getSystemService
import
androidx.core.os.bundleOf
import
androidx.core.os.bundleOf
import
androidx.preference.Preference
import
androidx.preference.Preference
...
@@ -51,7 +50,7 @@ import com.github.shadowsocks.utils.Key
...
@@ -51,7 +50,7 @@ import com.github.shadowsocks.utils.Key
import
com.takisoft.preferencex.EditTextPreference
import
com.takisoft.preferencex.EditTextPreference
import
com.takisoft.preferencex.PreferenceFragmentCompat
import
com.takisoft.preferencex.PreferenceFragmentCompat
class
ProfileConfigFragment
:
PreferenceFragmentCompat
(),
Toolbar
.
OnMenuItemClickListener
,
class
ProfileConfigFragment
:
PreferenceFragmentCompat
(),
Preference
.
OnPreferenceChangeListener
,
OnPreferenceDataStoreChangeListener
{
Preference
.
OnPreferenceChangeListener
,
OnPreferenceDataStoreChangeListener
{
companion
object
{
companion
object
{
private
const
val
REQUEST_CODE_PLUGIN_CONFIGURE
=
1
private
const
val
REQUEST_CODE_PLUGIN_CONFIGURE
=
1
...
@@ -173,7 +172,7 @@ class ProfileConfigFragment : PreferenceFragmentCompat(), Toolbar.OnMenuItemClic
...
@@ -173,7 +172,7 @@ class ProfileConfigFragment : PreferenceFragmentCompat(), Toolbar.OnMenuItemClic
}
else
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
}
else
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
}
}
override
fun
on
MenuItemClick
(
item
:
MenuItem
)
=
when
(
item
.
itemId
)
{
override
fun
on
OptionsItemSelected
(
item
:
MenuItem
?)
=
when
(
item
?
.
itemId
)
{
R
.
id
.
action_delete
->
{
R
.
id
.
action_delete
->
{
val
activity
=
requireActivity
()
val
activity
=
requireActivity
()
AlertDialog
.
Builder
(
activity
)
AlertDialog
.
Builder
(
activity
)
...
...
mobile/src/main/java/com/github/shadowsocks/ScannerActivity.kt
View file @
6ee97f6d
...
@@ -29,11 +29,10 @@ import android.os.Build
...
@@ -29,11 +29,10 @@ import android.os.Build
import
android.os.Bundle
import
android.os.Bundle
import
android.util.Log
import
android.util.Log
import
android.util.SparseArray
import
android.util.SparseArray
import
android.view.Menu
import
android.view.MenuItem
import
android.view.MenuItem
import
android.widget.Toast
import
android.widget.Toast
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.widget.Toolbar
import
androidx.core.app.TaskStackBuilder
import
androidx.core.content.getSystemService
import
androidx.core.content.getSystemService
import
androidx.core.util.forEach
import
androidx.core.util.forEach
import
com.crashlytics.android.Crashlytics
import
com.crashlytics.android.Crashlytics
...
@@ -43,7 +42,6 @@ import com.github.shadowsocks.database.ProfileManager
...
@@ -43,7 +42,6 @@ import com.github.shadowsocks.database.ProfileManager
import
com.github.shadowsocks.utils.datas
import
com.github.shadowsocks.utils.datas
import
com.github.shadowsocks.utils.openBitmap
import
com.github.shadowsocks.utils.openBitmap
import
com.github.shadowsocks.utils.printLog
import
com.github.shadowsocks.utils.printLog
import
com.github.shadowsocks.utils.resolveResourceId
import
com.google.android.gms.common.GoogleApiAvailability
import
com.google.android.gms.common.GoogleApiAvailability
import
com.google.android.gms.samples.vision.barcodereader.BarcodeCapture
import
com.google.android.gms.samples.vision.barcodereader.BarcodeCapture
import
com.google.android.gms.samples.vision.barcodereader.BarcodeGraphic
import
com.google.android.gms.samples.vision.barcodereader.BarcodeGraphic
...
@@ -52,7 +50,7 @@ import com.google.android.gms.vision.barcode.Barcode
...
@@ -52,7 +50,7 @@ import com.google.android.gms.vision.barcode.Barcode
import
com.google.android.gms.vision.barcode.BarcodeDetector
import
com.google.android.gms.vision.barcode.BarcodeDetector
import
xyz.belvi.mobilevisionbarcodescanner.BarcodeRetriever
import
xyz.belvi.mobilevisionbarcodescanner.BarcodeRetriever
class
ScannerActivity
:
AppCompatActivity
(),
Toolbar
.
OnMenuItemClickListener
,
BarcodeRetriever
{
class
ScannerActivity
:
AppCompatActivity
(),
BarcodeRetriever
{
companion
object
{
companion
object
{
private
const
val
TAG
=
"ScannerActivity"
private
const
val
TAG
=
"ScannerActivity"
private
const
val
REQUEST_IMPORT
=
2
private
const
val
REQUEST_IMPORT
=
2
...
@@ -62,12 +60,6 @@ class ScannerActivity : AppCompatActivity(), Toolbar.OnMenuItemClickListener, Ba
...
@@ -62,12 +60,6 @@ class ScannerActivity : AppCompatActivity(), Toolbar.OnMenuItemClickListener, Ba
private
lateinit
var
detector
:
BarcodeDetector
private
lateinit
var
detector
:
BarcodeDetector
private
fun
navigateUp
()
{
val
intent
=
parentActivityIntent
if
(
intent
==
null
||
!
shouldUpRecreateTask
(
intent
)
&&
!
isTaskRoot
)
finish
()
else
TaskStackBuilder
.
create
(
this
).
addNextIntentWithParentStack
(
intent
).
startActivities
()
}
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
detector
=
BarcodeDetector
.
Builder
(
this
)
detector
=
BarcodeDetector
.
Builder
(
this
)
...
@@ -97,12 +89,8 @@ class ScannerActivity : AppCompatActivity(), Toolbar.OnMenuItemClickListener, Ba
...
@@ -97,12 +89,8 @@ class ScannerActivity : AppCompatActivity(), Toolbar.OnMenuItemClickListener, Ba
return
return
}
}
setContentView
(
R
.
layout
.
layout_scanner
)
setContentView
(
R
.
layout
.
layout_scanner
)
val
toolbar
=
findViewById
<
Toolbar
>(
R
.
id
.
toolbar
)
setSupportActionBar
(
findViewById
(
R
.
id
.
toolbar
))
toolbar
.
title
=
title
supportActionBar
!!
.
setDisplayHomeAsUpEnabled
(
true
)
toolbar
.
setNavigationIcon
(
theme
.
resolveResourceId
(
R
.
attr
.
homeAsUpIndicator
))
toolbar
.
setNavigationOnClickListener
{
navigateUp
()
}
toolbar
.
inflateMenu
(
R
.
menu
.
scanner_menu
)
toolbar
.
setOnMenuItemClickListener
(
this
)
val
capture
=
supportFragmentManager
.
findFragmentById
(
R
.
id
.
barcode
)
as
BarcodeCapture
val
capture
=
supportFragmentManager
.
findFragmentById
(
R
.
id
.
barcode
)
as
BarcodeCapture
capture
.
setCustomDetector
(
detector
)
capture
.
setCustomDetector
(
detector
)
capture
.
setRetrieval
(
this
)
capture
.
setRetrieval
(
this
)
...
@@ -110,7 +98,7 @@ class ScannerActivity : AppCompatActivity(), Toolbar.OnMenuItemClickListener, Ba
...
@@ -110,7 +98,7 @@ class ScannerActivity : AppCompatActivity(), Toolbar.OnMenuItemClickListener, Ba
override
fun
onRetrieved
(
barcode
:
Barcode
)
=
runOnUiThread
{
override
fun
onRetrieved
(
barcode
:
Barcode
)
=
runOnUiThread
{
Profile
.
findAllUrls
(
barcode
.
rawValue
,
app
.
currentProfile
).
forEach
{
ProfileManager
.
createProfile
(
it
)
}
Profile
.
findAllUrls
(
barcode
.
rawValue
,
app
.
currentProfile
).
forEach
{
ProfileManager
.
createProfile
(
it
)
}
n
avigateUp
()
onSupportN
avigateUp
()
}
}
override
fun
onRetrievedMultiple
(
closetToClick
:
Barcode
?,
barcode
:
MutableList
<
BarcodeGraphic
>?)
=
check
(
false
)
override
fun
onRetrievedMultiple
(
closetToClick
:
Barcode
?,
barcode
:
MutableList
<
BarcodeGraphic
>?)
=
check
(
false
)
override
fun
onBitmapScanned
(
sparseArray
:
SparseArray
<
Barcode
>?)
{
}
override
fun
onBitmapScanned
(
sparseArray
:
SparseArray
<
Barcode
>?)
{
}
...
@@ -120,7 +108,11 @@ class ScannerActivity : AppCompatActivity(), Toolbar.OnMenuItemClickListener, Ba
...
@@ -120,7 +108,11 @@ class ScannerActivity : AppCompatActivity(), Toolbar.OnMenuItemClickListener, Ba
startImport
()
startImport
()
}
}
override
fun
onMenuItemClick
(
item
:
MenuItem
)
=
when
(
item
.
itemId
)
{
override
fun
onCreateOptionsMenu
(
menu
:
Menu
?):
Boolean
{
menuInflater
.
inflate
(
R
.
menu
.
scanner_menu
,
menu
)
return
true
}
override
fun
onOptionsItemSelected
(
item
:
MenuItem
?)
=
when
(
item
?.
itemId
)
{
R
.
id
.
action_import_clipboard
->
{
R
.
id
.
action_import_clipboard
->
{
startImport
(
true
)
startImport
(
true
)
true
true
...
@@ -151,8 +143,8 @@ class ScannerActivity : AppCompatActivity(), Toolbar.OnMenuItemClickListener, Ba
...
@@ -151,8 +143,8 @@ class ScannerActivity : AppCompatActivity(), Toolbar.OnMenuItemClickListener, Ba
}
}
Toast
.
makeText
(
this
,
if
(
success
)
R
.
string
.
action_import_msg
else
R
.
string
.
action_import_err
,
Toast
.
makeText
(
this
,
if
(
success
)
R
.
string
.
action_import_msg
else
R
.
string
.
action_import_err
,
Toast
.
LENGTH_SHORT
).
show
()
Toast
.
LENGTH_SHORT
).
show
()
n
avigateUp
()
onSupportN
avigateUp
()
}
else
if
(
requestCode
==
REQUEST_IMPORT_OR_FINISH
)
n
avigateUp
()
}
else
if
(
requestCode
==
REQUEST_IMPORT_OR_FINISH
)
onSupportN
avigateUp
()
else
->
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
else
->
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
}
}
}
}
...
...
mobile/src/main/java/com/github/shadowsocks/ToolbarFragment.kt
View file @
6ee97f6d
...
@@ -30,7 +30,7 @@ import androidx.fragment.app.Fragment
...
@@ -30,7 +30,7 @@ import androidx.fragment.app.Fragment
* @author Mygod
* @author Mygod
*/
*/
open
class
ToolbarFragment
:
Fragment
()
{
open
class
ToolbarFragment
:
Fragment
()
{
protected
lateinit
var
toolbar
:
Toolbar
lateinit
var
toolbar
:
Toolbar
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
super
.
onViewCreated
(
view
,
savedInstanceState
)
super
.
onViewCreated
(
view
,
savedInstanceState
)
...
...
mobile/src/main/res/menu/app_manager_menu.xml
View file @
6ee97f6d
...
@@ -8,14 +8,14 @@
...
@@ -8,14 +8,14 @@
app:showAsAction=
"never"
/>
app:showAsAction=
"never"
/>
<item
<item
android:id=
"@+id/action_export_clipboard"
android:id=
"@+id/action_export_clipboard"
android:alphabeticShortcut=
"
e
"
android:alphabeticShortcut=
"
c
"
android:icon=
"?attr/actionModeCopyDrawable"
android:icon=
"?attr/actionModeCopyDrawable"
android:numericShortcut=
"2"
android:numericShortcut=
"2"
android:title=
"@string/action_export"
android:title=
"@string/action_export"
app:showAsAction=
"ifRoom"
/>
app:showAsAction=
"ifRoom"
/>
<item
<item
android:id=
"@+id/action_import_clipboard"
android:id=
"@+id/action_import_clipboard"
android:alphabeticShortcut=
"
i
"
android:alphabeticShortcut=
"
v
"
android:icon=
"?attr/actionModePasteDrawable"
android:icon=
"?attr/actionModePasteDrawable"
android:numericShortcut=
"3"
android:numericShortcut=
"3"
android:title=
"@string/action_import"
android:title=
"@string/action_import"
...
...
mobile/src/main/res/menu/custom_rules_menu.xml
View file @
6ee97f6d
...
@@ -3,22 +3,17 @@
...
@@ -3,22 +3,17 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
<item
android:title=
"@string/action_add_rule"
<item
android:title=
"@string/action_add_rule"
android:icon=
"@drawable/ic_av_playlist_add"
android:icon=
"@drawable/ic_av_playlist_add"
android:alphabeticShortcut=
"
a
"
android:alphabeticShortcut=
"
n
"
android:numericShortcut=
"1"
android:numericShortcut=
"1"
app:showAsAction=
"always"
>
app:showAsAction=
"always"
>
<menu>
<menu>
<item
android:id=
"@+id/action_manual_settings"
<item
android:id=
"@+id/action_manual_settings"
android:title=
"@string/add_profile_methods_manual_settings"
android:title=
"@string/add_profile_methods_manual_settings"
/>
android:alphabeticShortcut=
"m"
android:numericShortcut=
"1"
/>
<item
android:id=
"@+id/action_import_clipboard"
<item
android:id=
"@+id/action_import_clipboard"
android:title=
"@string/action_import"
android:title=
"@string/action_import"
android:alphabeticShortcut=
"i"
android:alphabeticShortcut=
"v"
/>
android:numericShortcut=
"2"
/>
<item
android:id=
"@+id/action_import_gfwlist"
<item
android:id=
"@+id/action_import_gfwlist"
android:title=
"@string/route_entry_gfwlist"
android:title=
"@string/route_entry_gfwlist"
/>
android:alphabeticShortcut=
"g"
android:numericShortcut=
"3"
/>
</menu>
</menu>
</item>
</item>
</menu>
</menu>
mobile/src/main/res/menu/custom_rules_selection.xml
View file @
6ee97f6d
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
android:showAsAction=
"always"
/>
android:showAsAction=
"always"
/>
<item
<item
android:id=
"@+id/action_cut"
android:id=
"@+id/action_cut"
android:alphabeticShortcut=
"
t
"
android:alphabeticShortcut=
"
x
"
android:icon=
"?attr/actionModeCutDrawable"
android:icon=
"?attr/actionModeCutDrawable"
android:numericShortcut=
"2"
android:numericShortcut=
"2"
android:title=
"@android:string/cut"
android:title=
"@android:string/cut"
...
...
mobile/src/main/res/menu/profile_config_menu.xml
View file @
6ee97f6d
...
@@ -5,12 +5,12 @@
...
@@ -5,12 +5,12 @@
android:title=
"@string/delete"
android:title=
"@string/delete"
android:icon=
"@drawable/ic_action_delete"
android:icon=
"@drawable/ic_action_delete"
android:alphabeticShortcut=
"d"
android:alphabeticShortcut=
"d"
android:numericShortcut=
"
2
"
android:numericShortcut=
"
1
"
app:showAsAction=
"always"
/>
app:showAsAction=
"always"
/>
<item
android:id=
"@+id/action_apply"
<item
android:id=
"@+id/action_apply"
android:title=
"@string/apply"
android:title=
"@string/apply"
android:icon=
"@drawable/ic_action_done"
android:icon=
"@drawable/ic_action_done"
android:alphabeticShortcut=
"
a
"
android:alphabeticShortcut=
"
s
"
android:numericShortcut=
"
3
"
android:numericShortcut=
"
2
"
app:showAsAction=
"always"
/>
app:showAsAction=
"always"
/>
</menu>
</menu>
mobile/src/main/res/menu/profile_manager_menu.xml
View file @
6ee97f6d
...
@@ -2,50 +2,41 @@
...
@@ -2,50 +2,41 @@
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
<item
<item
android:alphabeticShortcut=
"
a
"
android:alphabeticShortcut=
"
n
"
android:icon=
"@drawable/ic_action_note_add"
android:icon=
"@drawable/ic_action_note_add"
android:numericShortcut=
"
0
"
android:numericShortcut=
"
1
"
android:title=
"@string/add_profile"
android:title=
"@string/add_profile"
app:showAsAction=
"always"
>
app:showAsAction=
"always"
>
<menu>
<menu>
<item
<item
android:id=
"@+id/action_scan_qr_code"
android:id=
"@+id/action_scan_qr_code"
android:alphabeticShortcut=
"s"
android:numericShortcut=
"1"
android:title=
"@string/add_profile_methods_scan_qr_code"
/>
android:title=
"@string/add_profile_methods_scan_qr_code"
/>
<item
<item
android:id=
"@+id/action_import_clipboard"
android:id=
"@+id/action_import_clipboard"
android:alphabeticShortcut=
"c"
android:alphabeticShortcut=
"v"
android:numericShortcut=
"2"
android:title=
"@string/action_import"
/>
android:title=
"@string/action_import"
/>
<item
<item
android:id=
"@+id/action_import_file"
android:id=
"@+id/action_import_file"
android:alphabeticShortcut=
"f"
android:alphabeticShortcut=
"o"
android:numericShortcut=
"3"
android:title=
"@string/action_import_file"
/>
android:title=
"@string/action_import_file"
/>
<item
<item
android:id=
"@+id/action_manual_settings"
android:id=
"@+id/action_manual_settings"
android:alphabeticShortcut=
"m"
android:numericShortcut=
"4"
android:title=
"@string/add_profile_methods_manual_settings"
/>
android:title=
"@string/add_profile_methods_manual_settings"
/>
</menu>
</menu>
</item>
</item>
<item
<item
android:alphabeticShortcut=
"
e
"
android:alphabeticShortcut=
"
s
"
android:icon=
"@drawable/ic_file_file_upload"
android:icon=
"@drawable/ic_file_file_upload"
android:numericShortcut=
"1"
android:title=
"@string/action_export_more"
android:title=
"@string/action_export_more"
android:numericShortcut=
"2"
app:showAsAction=
"always"
>
app:showAsAction=
"always"
>
<menu>
<menu>
<item
<item
android:id=
"@+id/action_export_clipboard"
android:id=
"@+id/action_export_clipboard"
android:alphabeticShortcut=
"c"
android:alphabeticShortcut=
"c"
android:numericShortcut=
"1"
android:title=
"@string/action_export"
/>
android:title=
"@string/action_export"
/>
<item
<item
android:id=
"@+id/action_export_file"
android:id=
"@+id/action_export_file"
android:alphabeticShortcut=
"f"
android:numericShortcut=
"2"
android:title=
"@string/action_export_file"
/>
android:title=
"@string/action_export_file"
/>
</menu>
</menu>
</item>
</item>
...
...
mobile/src/main/res/menu/profile_share_popup.xml
View file @
6ee97f6d
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item
android:id=
"@+id/action_qr_code_nfc"
<item
android:id=
"@+id/action_qr_code_nfc"
android:title=
"@string/share_qr_nfc"
android:title=
"@string/share_qr_nfc"
/>
android:alphabeticShortcut=
"q"
android:numericShortcut=
"1"
/>
<item
android:id=
"@+id/action_export_clipboard"
<item
android:id=
"@+id/action_export_clipboard"
android:title=
"@string/action_export"
android:title=
"@string/action_export"
/>
android:alphabeticShortcut=
"e"
android:numericShortcut=
"2"
/>
</menu>
</menu>
mobile/src/main/res/menu/scanner_menu.xml
View file @
6ee97f6d
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
<item
android:id=
"@+id/action_import_clipboard"
<item
android:id=
"@+id/action_import_clipboard"
android:title=
"@string/action_import_file"
android:title=
"@string/action_import_file"
android:icon=
"@drawable/ic_image_photo"
android:icon=
"@drawable/ic_image_photo"
android:alphabeticShortcut=
"
p
"
android:alphabeticShortcut=
"
o
"
android:numericShortcut=
"1"
android:numericShortcut=
"1"
app:showAsAction=
"always"
/>
app:showAsAction=
"always"
/>
</menu>
</menu>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment