Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Julian Dehm
briar
Commits
d3e44358
Verified
Commit
d3e44358
authored
Aug 13, 2018
by
Torsten Grote
Browse files
Move feedback trigger and making link clickable to UiUtils
parent
920a1d04
Changes
3
Hide whitespace changes
Inline
Side-by-side
briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeErrorFragment.java
View file @
d3e44358
...
...
@@ -2,26 +2,24 @@ package org.briarproject.briar.android.keyagreement;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.text.SpannableStringBuilder
;
import
android.text.method.LinkMovementMethod
;
import
android.text.style.ClickableSpan
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.Button
;
import
android.widget.TextView
;
import
org.acra.ACRA
;
import
org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault
;
import
org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault
;
import
org.briarproject.bramble.api.system.AndroidExecutor
;
import
org.briarproject.briar.R
;
import
org.briarproject.briar.android.activity.ActivityComponent
;
import
org.briarproject.briar.android.fragment.BaseFragment
;
import
org.briarproject.briar.android.util.U
serFeedback
;
import
org.briarproject.briar.android.util.U
iUtils
;
import
javax.inject.Inject
;
import
static
org
.
briarproject
.
briar
.
android
.
util
.
UiUtils
.
onSingleLinkClick
;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
public
class
ContactExchangeErrorFragment
extends
BaseFragment
{
...
...
@@ -70,24 +68,7 @@ public class ContactExchangeErrorFragment extends BaseFragment {
// make feedback link clickable
TextView
explanation
=
v
.
findViewById
(
R
.
id
.
errorMessage
);
SpannableStringBuilder
ssb
=
new
SpannableStringBuilder
(
explanation
.
getText
());
ClickableSpan
[]
spans
=
ssb
.
getSpans
(
0
,
ssb
.
length
(),
ClickableSpan
.
class
);
if
(
spans
.
length
!=
1
)
throw
new
AssertionError
();
ClickableSpan
span
=
spans
[
0
];
int
start
=
ssb
.
getSpanStart
(
span
);
int
end
=
ssb
.
getSpanEnd
(
span
);
ssb
.
removeSpan
(
span
);
ClickableSpan
cSpan
=
new
ClickableSpan
()
{
@Override
public
void
onClick
(
View
v
)
{
triggerFeedback
();
}
};
ssb
.
setSpan
(
cSpan
,
start
+
1
,
end
,
0
);
explanation
.
setText
(
ssb
);
explanation
.
setMovementMethod
(
new
LinkMovementMethod
());
onSingleLinkClick
(
explanation
,
this
::
triggerFeedback
);
// technical error message
TextView
msg
=
v
.
findViewById
(
R
.
id
.
errorMessageTech
);
...
...
@@ -110,9 +91,7 @@ public class ContactExchangeErrorFragment extends BaseFragment {
private
void
triggerFeedback
()
{
finish
();
androidExecutor
.
runOnBackgroundThread
(
()
->
ACRA
.
getErrorReporter
()
.
handleException
(
new
UserFeedback
(),
false
));
UiUtils
.
triggerFeedback
(
androidExecutor
);
}
}
briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
View file @
d3e44358
...
...
@@ -22,7 +22,6 @@ import android.view.View;
import
android.view.ViewGroup
;
import
android.widget.Toast
;
import
org.acra.ACRA
;
import
org.briarproject.bramble.api.db.DbException
;
import
org.briarproject.bramble.api.event.Event
;
import
org.briarproject.bramble.api.event.EventBus
;
...
...
@@ -40,7 +39,6 @@ import org.briarproject.briar.R;
import
org.briarproject.briar.android.Localizer
;
import
org.briarproject.briar.android.navdrawer.NavDrawerActivity
;
import
org.briarproject.briar.android.util.UiUtils
;
import
org.briarproject.briar.android.util.UserFeedback
;
import
java.util.ArrayList
;
import
java.util.Collections
;
...
...
@@ -88,6 +86,7 @@ import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD;
import
static
org
.
briarproject
.
briar
.
android
.
activity
.
RequestCodes
.
REQUEST_RINGTONE
;
import
static
org
.
briarproject
.
briar
.
android
.
navdrawer
.
NavDrawerActivity
.
INTENT_SIGN_OUT
;
import
static
org
.
briarproject
.
briar
.
android
.
util
.
UiUtils
.
hasScreenLock
;
import
static
org
.
briarproject
.
briar
.
android
.
util
.
UiUtils
.
triggerFeedback
;
import
static
org
.
briarproject
.
briar
.
api
.
android
.
AndroidNotificationManager
.
BLOG_CHANNEL_ID
;
import
static
org
.
briarproject
.
briar
.
api
.
android
.
AndroidNotificationManager
.
CONTACT_CHANNEL_ID
;
import
static
org
.
briarproject
.
briar
.
api
.
android
.
AndroidNotificationManager
.
FORUM_CHANNEL_ID
;
...
...
@@ -210,7 +209,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
findPreference
(
"pref_key_send_feedback"
).
setOnPreferenceClickListener
(
preference
->
{
triggerFeedback
();
triggerFeedback
(
androidExecutor
);
return
true
;
});
...
...
@@ -484,11 +483,6 @@ public class SettingsFragment extends PreferenceFragmentCompat
return
true
;
}
private
void
triggerFeedback
()
{
androidExecutor
.
runOnBackgroundThread
(()
->
ACRA
.
getErrorReporter
()
.
handleException
(
new
UserFeedback
(),
false
));
}
@Override
public
boolean
onPreferenceChange
(
Preference
preference
,
Object
newValue
)
{
if
(
preference
==
language
)
{
...
...
briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java
View file @
d3e44358
...
...
@@ -21,6 +21,7 @@ import android.text.SpannableString;
import
android.text.SpannableStringBuilder
;
import
android.text.Spanned
;
import
android.text.format.DateUtils
;
import
android.text.method.LinkMovementMethod
;
import
android.text.style.ClickableSpan
;
import
android.text.style.ForegroundColorSpan
;
import
android.text.style.URLSpan
;
...
...
@@ -28,9 +29,11 @@ import android.util.TypedValue;
import
android.view.View
;
import
android.widget.TextView
;
import
org.acra.ACRA
;
import
org.briarproject.bramble.api.contact.ContactId
;
import
org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault
;
import
org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault
;
import
org.briarproject.bramble.api.system.AndroidExecutor
;
import
org.briarproject.briar.R
;
import
org.briarproject.briar.android.view.ArticleMovementMethod
;
import
org.briarproject.briar.android.widget.LinkDialogFragment
;
...
...
@@ -147,6 +150,32 @@ public class UiUtils {
v
.
setMovementMethod
(
ArticleMovementMethod
.
getInstance
());
}
/**
* Executes the runnable when clicking the link in the textView's text.
*
* Attention: This assumes that there's only <b>one</b> link in the text.
*/
public
static
void
onSingleLinkClick
(
TextView
textView
,
Runnable
runnable
)
{
SpannableStringBuilder
ssb
=
new
SpannableStringBuilder
(
textView
.
getText
());
ClickableSpan
[]
spans
=
ssb
.
getSpans
(
0
,
ssb
.
length
(),
ClickableSpan
.
class
);
if
(
spans
.
length
!=
1
)
throw
new
AssertionError
();
ClickableSpan
span
=
spans
[
0
];
int
start
=
ssb
.
getSpanStart
(
span
);
int
end
=
ssb
.
getSpanEnd
(
span
);
ssb
.
removeSpan
(
span
);
ClickableSpan
cSpan
=
new
ClickableSpan
()
{
@Override
public
void
onClick
(
View
v
)
{
runnable
.
run
();
}
};
ssb
.
setSpan
(
cSpan
,
start
+
1
,
end
,
0
);
textView
.
setText
(
ssb
);
textView
.
setMovementMethod
(
new
LinkMovementMethod
());
}
public
static
String
getAvatarTransitionName
(
ContactId
c
)
{
return
"avatar"
+
c
.
getInt
();
}
...
...
@@ -242,4 +271,10 @@ public class UiUtils {
(
SDK_INT
>=
23
&&
keyguardManager
.
isDeviceSecure
());
}
public
static
void
triggerFeedback
(
AndroidExecutor
androidExecutor
)
{
androidExecutor
.
runOnBackgroundThread
(
()
->
ACRA
.
getErrorReporter
()
.
handleException
(
new
UserFeedback
(),
false
));
}
}
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