Picker account

This commit is contained in:
stom79 2018-12-22 17:59:39 +01:00
parent 7347155e38
commit 17f1f7cfa8
1 changed files with 101 additions and 27 deletions

View File

@ -1486,7 +1486,7 @@ public class Helper {
if( accounts != null && accounts.size() > 1) { if( accounts != null && accounts.size() > 1) {
FloatingActionButton.LayoutParams layoutparmansAcc = new FloatingActionButton.LayoutParams((int) Helper.convertDpToPixel(35, activity), (int) Helper.convertDpToPixel(35, activity)); FloatingActionButton.LayoutParams layoutparmansAcc = new FloatingActionButton.LayoutParams((int) Helper.convertDpToPixel(35, activity), (int) Helper.convertDpToPixel(35, activity));
FloatingActionButton.LayoutParams layoutparmanImgAcc = new FloatingActionButton.LayoutParams((int) Helper.convertDpToPixel(25, activity), (int) Helper.convertDpToPixel(25, activity)); FloatingActionButton.LayoutParams layoutparmanImgAcc = new FloatingActionButton.LayoutParams((int) Helper.convertDpToPixel(35, activity), (int) Helper.convertDpToPixel(35, activity));
MenuFloating actionButtonAcc = null; MenuFloating actionButtonAcc = null;
SharedPreferences mSharedPreferences = activity.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); SharedPreferences mSharedPreferences = activity.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
String currrentUserId = mSharedPreferences.getString(Helper.PREF_KEY_ID, null); String currrentUserId = mSharedPreferences.getString(Helper.PREF_KEY_ID, null);
@ -1496,6 +1496,19 @@ public class Helper {
ImageView finalIcon = icon; ImageView finalIcon = icon;
Glide.with(activity.getApplicationContext()) Glide.with(activity.getApplicationContext())
.asBitmap() .asBitmap()
.apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(270)))
.listener(new RequestListener<Bitmap>(){
@Override
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
finalIcon.setImageResource(R.drawable.missing);
return false;
}
})
.load(accountChoice.getAvatar()) .load(accountChoice.getAvatar())
.into(new SimpleTarget<Bitmap>() { .into(new SimpleTarget<Bitmap>() {
@Override @Override
@ -1513,8 +1526,8 @@ public class Helper {
} }
actionButtonAcc = actionButtonAccBuild actionButtonAcc = actionButtonAccBuild
.setContentView(finalIcon, layoutparmanImg) .setContentView(finalIcon, layoutparmanImgAcc)
.setLayoutParams(layoutparmans) .setLayoutParams(layoutparmansAcc)
.setTag("ACCOUNT") .setTag("ACCOUNT")
.intoView(more_account_container) .intoView(more_account_container)
.build(); .build();
@ -1532,17 +1545,56 @@ public class Helper {
ImageView itemIconAcc = new ImageView(activity); ImageView itemIconAcc = new ImageView(activity);
Glide.with(activity.getApplicationContext()) Glide.with(activity.getApplicationContext())
.asBitmap() .asBitmap()
.apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(270)))
.load(accountChoice.getAvatar()) .load(accountChoice.getAvatar())
.listener(new RequestListener<Bitmap>(){
@Override
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
itemIconAcc.setImageResource(R.drawable.missing);
return false;
}
})
.into(new SimpleTarget<Bitmap>() { .into(new SimpleTarget<Bitmap>() {
@Override @Override
public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) { public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {
itemIconAcc.setImageBitmap(resource); itemIconAcc.setImageBitmap(resource);
} }
}); });
SubActionButton subActionButtonAcc = itemBuilderAcc
.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.circular)) if( accounts.size() > 2 ) {
.setContentView(itemIconAcc).build(); SubActionButton.Builder subActionButtonAccBuilder = itemBuilderAcc;
actionMenuAccBuilder.addSubActionView(subActionButtonAcc); if (theme == THEME_LIGHT) {
subActionButtonAccBuilder.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.circular));
} else if (theme == THEME_DARK) {
subActionButtonAccBuilder.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.circular_dark));
} else if (theme == THEME_BLACK) {
subActionButtonAccBuilder.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.circular_black));
}
SubActionButton subActionButtonAcc = subActionButtonAccBuilder.setContentView(itemIconAcc, layoutparmanImgAcc)
.setLayoutParams(layoutparmansAcc)
.build();
subActionButtonAcc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, accountChoice.getToken());
editor.putString(Helper.PREF_KEY_ID, accountChoice.getId());
editor.putString(Helper.PREF_INSTANCE, accountChoice.getInstance().trim());
editor.commit();
Intent changeAccount = new Intent(activity, MainActivity.class);
changeAccount.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
activity.finish();
activity.startActivity(changeAccount);
}
});
actionMenuAccBuilder.addSubActionView(subActionButtonAcc);
}
} }
} }
@ -1551,27 +1603,49 @@ public class Helper {
.setEndAngle(135) .setEndAngle(135)
.build(); .build();
if( actionButtonAcc != null) { if( actionButtonAcc != null) {
actionButtonAcc.setFocusableInTouchMode(true); if( accounts.size() > 2){
actionButtonAcc.setFocusable(true); actionButtonAcc.setFocusableInTouchMode(true);
actionButtonAcc.setOnTouchListener(new View.OnTouchListener() { actionButtonAcc.setFocusable(true);
@Override actionButtonAcc.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) { @Override
if(actionMenuAcc.isOpen()) public boolean onTouch(View v, MotionEvent event) {
actionMenuAcc.close(true); if(actionMenuAcc.isOpen())
else actionMenuAcc.close(true);
actionMenuAcc.open(true); else
return false; actionMenuAcc.open(true);
} return false;
}); }
actionButtonAcc.setOnFocusChangeListener(new View.OnFocusChangeListener() { });
@Override actionButtonAcc.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) { @Override
try { public void onFocusChange(View v, boolean hasFocus) {
actionMenuAcc.close(true); try {
}catch (Exception ignored){} actionMenuAcc.close(true);
}catch (Exception ignored){}
}
});
}else{
actionButtonAcc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(final Account accountChoice: accounts) {
if (!currrentUserId.equals(accountChoice.getId())) {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, accountChoice.getToken());
editor.putString(Helper.PREF_KEY_ID, accountChoice.getId());
editor.putString(Helper.PREF_INSTANCE, accountChoice.getInstance().trim());
editor.commit();
Intent changeAccount = new Intent(activity, MainActivity.class);
changeAccount.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
activity.finish();
activity.startActivity(changeAccount);
}
}
}
});
}
}
});
} }
} }