Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xabber-android
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
xabber-android
Commits
cacc6560
Commit
cacc6560
authored
Apr 01, 2015
by
Grigory Fedorov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Contact list: account action buttons improved: shadow, ripple animation.
makovkastar/FloatingActionButton library used.
parent
e87af758
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
52 additions
and
15 deletions
+52
-15
build.gradle
app/build.gradle
+1
-0
AccountActionButtonsAdapter.java
...abber/android/ui/adapter/AccountActionButtonsAdapter.java
+22
-5
account_action_button.xml
app/src/main/res/layout/account_action_button.xml
+29
-10
No files found.
app/build.gradle
View file @
cacc6560
...
@@ -27,5 +27,6 @@ dependencies {
...
@@ -27,5 +27,6 @@ dependencies {
compile
'com.android.support:support-v13:22.0.0'
compile
'com.android.support:support-v13:22.0.0'
compile
'com.github.ksoichiro:android-observablescrollview:1.5.0'
compile
'com.github.ksoichiro:android-observablescrollview:1.5.0'
compile
'de.hdodenhof:circleimageview:1.2.2'
compile
'de.hdodenhof:circleimageview:1.2.2'
compile
'com.melnykov:floatingactionbutton:1.2.0'
compile
project
(
'otr4j'
)
compile
project
(
'otr4j'
)
}
}
app/src/main/java/com/xabber/android/ui/adapter/AccountActionButtonsAdapter.java
View file @
cacc6560
...
@@ -6,6 +6,7 @@ import android.view.LayoutInflater;
...
@@ -6,6 +6,7 @@ import android.view.LayoutInflater;
import
android.view.View
;
import
android.view.View
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
com.melnykov.fab.FloatingActionButton
;
import
com.xabber.android.data.account.AccountManager
;
import
com.xabber.android.data.account.AccountManager
;
import
com.xabber.android.data.extension.avatar.AvatarManager
;
import
com.xabber.android.data.extension.avatar.AvatarManager
;
import
com.xabber.androiddev.R
;
import
com.xabber.androiddev.R
;
...
@@ -35,6 +36,8 @@ public class AccountActionButtonsAdapter implements UpdatableAdapter {
...
@@ -35,6 +36,8 @@ public class AccountActionButtonsAdapter implements UpdatableAdapter {
*/
*/
private
final
ArrayList
<
String
>
accounts
;
private
final
ArrayList
<
String
>
accounts
;
private
int
[]
accountActionBarColors
;
private
int
[]
accountActionBarColors
;
private
int
[]
accountStatusBarColors
;
private
int
[]
accountBackgroundColors
;
public
AccountActionButtonsAdapter
(
Activity
activity
,
public
AccountActionButtonsAdapter
(
Activity
activity
,
View
.
OnClickListener
onClickListener
,
LinearLayout
linearLayout
)
{
View
.
OnClickListener
onClickListener
,
LinearLayout
linearLayout
)
{
...
@@ -47,6 +50,8 @@ public class AccountActionButtonsAdapter implements UpdatableAdapter {
...
@@ -47,6 +50,8 @@ public class AccountActionButtonsAdapter implements UpdatableAdapter {
Resources
resources
=
activity
.
getResources
();
Resources
resources
=
activity
.
getResources
();
accountActionBarColors
=
resources
.
getIntArray
(
R
.
array
.
account_action_bar
);
accountActionBarColors
=
resources
.
getIntArray
(
R
.
array
.
account_action_bar
);
accountStatusBarColors
=
resources
.
getIntArray
(
R
.
array
.
account_status_bar
);
accountBackgroundColors
=
resources
.
getIntArray
(
R
.
array
.
account_background
);
}
}
/**
/**
...
@@ -57,9 +62,14 @@ public class AccountActionButtonsAdapter implements UpdatableAdapter {
...
@@ -57,9 +62,14 @@ public class AccountActionButtonsAdapter implements UpdatableAdapter {
public
void
rebuild
()
{
public
void
rebuild
()
{
accounts
.
clear
();
accounts
.
clear
();
accounts
.
addAll
(
AccountManager
.
getInstance
().
getAccounts
());
accounts
.
addAll
(
AccountManager
.
getInstance
().
getAccounts
());
if
(
accounts
.
size
()
<=
1
)
{
linearLayout
.
removeAllViews
();
return
;
}
Collections
.
sort
(
accounts
);
Collections
.
sort
(
accounts
);
final
int
size
=
accounts
.
size
();
final
int
size
=
accounts
.
size
();
final
LayoutInflater
inflater
=
(
LayoutInflater
)
activity
final
LayoutInflater
inflater
=
(
LayoutInflater
)
activity
.
getSystemService
(
Activity
.
LAYOUT_INFLATER_SERVICE
);
.
getSystemService
(
Activity
.
LAYOUT_INFLATER_SERVICE
);
...
@@ -77,13 +87,20 @@ public class AccountActionButtonsAdapter implements UpdatableAdapter {
...
@@ -77,13 +87,20 @@ public class AccountActionButtonsAdapter implements UpdatableAdapter {
@Override
@Override
public
void
onChange
()
{
public
void
onChange
()
{
if
(
accounts
.
size
()
<=
1
)
{
return
;
}
for
(
int
index
=
0
;
index
<
accounts
.
size
();
index
++)
{
for
(
int
index
=
0
;
index
<
accounts
.
size
();
index
++)
{
final
CircleImageView
floatingActionButton
=
(
CircleImageView
)
linearLayout
.
getChildAt
(
index
).
findViewById
(
R
.
id
.
account_avatar
);
final
CircleImageView
circleImageView
=
(
CircleImageView
)
linearLayout
.
getChildAt
(
index
).
findViewById
(
R
.
id
.
account_avatar
);
final
String
account
=
accounts
.
get
(
index
);
final
String
account
=
accounts
.
get
(
index
);
int
colorLevel
=
AccountManager
.
getInstance
().
getColorLevel
(
account
);
circleImageView
.
setImageDrawable
(
AvatarManager
.
getInstance
().
getAccountAvatar
(
account
)
);
floatingActionButton
.
setBorderColor
(
accountActionBarColors
[
colorLevel
]);
FloatingActionButton
floatingActionButton
=
(
FloatingActionButton
)
linearLayout
.
getChildAt
(
index
).
findViewById
(
R
.
id
.
fab
);
floatingActionButton
.
setImageDrawable
(
AvatarManager
.
getInstance
().
getAccountAvatar
(
account
));
int
colorLevel
=
AccountManager
.
getInstance
().
getColorLevel
(
account
);
floatingActionButton
.
setColorNormal
(
accountActionBarColors
[
colorLevel
]);
floatingActionButton
.
setColorPressed
(
accountStatusBarColors
[
colorLevel
]);
floatingActionButton
.
setColorRipple
(
accountBackgroundColors
[
colorLevel
]);
}
}
}
}
...
...
app/src/main/res/layout/account_action_button.xml
View file @
cacc6560
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:
android=
"http://schemas.android.com/apk/res/android
"
xmlns:
fab=
"http://schemas.android.com/apk/res-auto
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:paddingBottom=
"8dp"
android:paddingLeft=
"16dp"
android:paddingRight=
"16dp"
android:paddingTop=
"8dp"
>
>
<com.melnykov.fab.FloatingActionButton
android:id=
"@+id/fab"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
fab:fab_type=
"mini"
fab:fab_colorNormal=
"@android:color/transparent"
fab:fab_colorPressed=
"@android:color/transparent"
android:clickable=
"false"
android:layout_marginTop=
"8dp"
android:layout_marginBottom=
"16dp"
android:layout_marginLeft=
"16dp"
android:layout_marginRight=
"16dp"
/>
<de.hdodenhof.circleimageview.CircleImageView
xmlns:app=
"http://schemas.android.com/apk/res-auto"
<de.hdodenhof.circleimageview.CircleImageView
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:id=
"@+id/account_avatar"
android:id=
"@+id/account_avatar"
android:layout_width=
"4
8
dp"
android:layout_width=
"4
0
dp"
android:layout_height=
"4
8
dp"
android:layout_height=
"4
0
dp"
android:src=
"@drawable/ic_avatar_1"
android:src=
"@drawable/ic_avatar_1"
app:border_width=
"3dp"
app:border_width=
"3dp"
app:border_color=
"@color/green_500"
app:border_color=
"@android:color/transparent"
android:elevation=
"8dp"
android:layout_marginTop=
"8dp"
android:layout_marginBottom=
"16dp"
android:layout_marginLeft=
"16dp"
android:layout_marginRight=
"16dp"
/>
/>
</FrameLayout>
</FrameLayout>
\ 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