Adds header banner for accounts & adds some other improvements with accounts
This commit is contained in:
parent
de12262501
commit
3583cacb26
|
@ -19,8 +19,17 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.ColorFilter;
|
||||
import android.graphics.LightingColorFilter;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.support.design.widget.FloatingActionButton;
|
||||
|
@ -41,6 +50,7 @@ import android.view.Menu;
|
|||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
@ -48,7 +58,10 @@ import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
|
|||
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
||||
import com.nostra13.universalimageloader.core.assist.FailReason;
|
||||
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
|
||||
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
|
||||
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
|
||||
|
||||
|
||||
import java.io.File;
|
||||
|
@ -103,8 +116,9 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi
|
|||
private boolean isHiddingShowing = false;
|
||||
private static int instanceValue = 0;
|
||||
private Relationship relationship;
|
||||
private TextView account_un;
|
||||
private boolean showMediaOnly;
|
||||
private ImageView pp_actionBar;
|
||||
private LinearLayout main_header_container;
|
||||
|
||||
public enum action{
|
||||
FOLLOW,
|
||||
|
@ -132,7 +146,7 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi
|
|||
account_follow = (FloatingActionButton) findViewById(R.id.account_follow);
|
||||
account_follow_request = (TextView) findViewById(R.id.account_follow_request);
|
||||
account_follow.setEnabled(false);
|
||||
account_un = (TextView) findViewById(R.id.account_un);
|
||||
main_header_container = (LinearLayout) findViewById(R.id.main_header_container);
|
||||
if(b != null){
|
||||
accountId = b.getString("accountId");
|
||||
new RetrieveRelationshipAsyncTask(getApplicationContext(), accountId,ShowAccountActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
|
@ -220,19 +234,14 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi
|
|||
ImageView account_pp = (ImageView) findViewById(R.id.account_pp);
|
||||
boolean hide = intent.getBooleanExtra("hide", false);
|
||||
if( hide){
|
||||
account_follow.setVisibility(View.GONE);
|
||||
account_note.setVisibility(View.GONE);
|
||||
tabLayout.setVisibility(View.GONE);
|
||||
account_un.setVisibility(View.GONE);
|
||||
account_pp.getLayoutParams().width = (int) Helper.convertDpToPixel(50, context);
|
||||
account_pp.getLayoutParams().height = (int) Helper.convertDpToPixel(50, context);
|
||||
main_header_container.setVisibility(View.GONE);
|
||||
if( pp_actionBar != null)
|
||||
pp_actionBar.setVisibility(View.VISIBLE);
|
||||
}else {
|
||||
manageButtonVisibility();
|
||||
account_pp.getLayoutParams().width = (int) Helper.convertDpToPixel(80, context);
|
||||
account_pp.getLayoutParams().height = (int) Helper.convertDpToPixel(80, context);
|
||||
tabLayout.setVisibility(View.VISIBLE);
|
||||
account_note.setVisibility(View.VISIBLE);
|
||||
account_un.setVisibility(View.VISIBLE);
|
||||
main_header_container.setVisibility(View.VISIBLE);
|
||||
if( pp_actionBar != null)
|
||||
pp_actionBar.setVisibility(View.GONE);
|
||||
}
|
||||
account_pp.requestLayout();
|
||||
Handler handler = new Handler();
|
||||
|
@ -319,6 +328,7 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi
|
|||
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||
return;
|
||||
}
|
||||
|
||||
ImageView account_pp = (ImageView) findViewById(R.id.account_pp);
|
||||
TextView account_dn = (TextView) findViewById(R.id.account_dn);
|
||||
TextView account_un = (TextView) findViewById(R.id.account_un);
|
||||
|
@ -329,6 +339,39 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi
|
|||
}else {
|
||||
changeDrawableColor(getApplicationContext(), R.drawable.ic_action_lock_closed,R.color.black);
|
||||
}
|
||||
if( account!= null) {
|
||||
String urlHeader = account.getHeader();
|
||||
if (urlHeader.startsWith("/")) {
|
||||
urlHeader = "https://" + Helper.getLiveInstance(ShowAccountActivity.this) + account.getHeader();
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN && !urlHeader.contains("missing.png")) {
|
||||
|
||||
DisplayImageOptions optionNew = new DisplayImageOptions.Builder().displayer(new SimpleBitmapDisplayer()).cacheInMemory(false)
|
||||
.cacheOnDisk(true).resetViewBeforeLoading(true).build();
|
||||
imageLoader.loadImage(urlHeader, optionNew, new SimpleImageLoadingListener() {
|
||||
@Override
|
||||
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
|
||||
super.onLoadingComplete(imageUri, view, loadedImage);
|
||||
LinearLayout main_header_container = (LinearLayout) findViewById(R.id.main_header_container);
|
||||
Bitmap workingBitmap = Bitmap.createBitmap(loadedImage);
|
||||
Bitmap mutableBitmap = workingBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||
Canvas canvas = new Canvas(mutableBitmap);
|
||||
Paint p = new Paint(Color.BLACK);
|
||||
ColorFilter filter = new LightingColorFilter(0xFF7F7F7F, 0x00000000);
|
||||
p.setColorFilter(filter);
|
||||
canvas.drawBitmap(mutableBitmap, new Matrix(), p);
|
||||
BitmapDrawable background = new BitmapDrawable(getResources(), mutableBitmap);
|
||||
main_header_container.setBackground(background);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadingFailed(java.lang.String imageUri, android.view.View view, FailReason failReason) {
|
||||
LinearLayout main_header_container = (LinearLayout) findViewById(R.id.main_header_container);
|
||||
main_header_container.setBackgroundResource(R.drawable.side_nav_bar);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
//Redraws icon for locked accounts
|
||||
final float scale = getResources().getDisplayMetrics().density;
|
||||
if( account != null && account.isLocked()){
|
||||
|
@ -341,13 +384,33 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi
|
|||
|
||||
ActionBar actionBar = getSupportActionBar();
|
||||
LayoutInflater mInflater = LayoutInflater.from(ShowAccountActivity.this);
|
||||
if( actionBar != null){
|
||||
if( actionBar != null && account != null){
|
||||
View show_account_actionbar = mInflater.inflate(R.layout.showaccount_actionbar, null);
|
||||
TextView actionbar_title = (TextView) show_account_actionbar.findViewById(R.id.show_account_title);
|
||||
if( account != null && account.getAcct() != null)
|
||||
if( account.getAcct() != null)
|
||||
actionbar_title.setText(account.getAcct());
|
||||
actionBar.setCustomView(show_account_actionbar);
|
||||
actionBar.setDisplayShowCustomEnabled(true);
|
||||
pp_actionBar = (ImageView) actionBar.getCustomView().findViewById(R.id.pp_actionBar);
|
||||
String url = account.getAvatar();
|
||||
if( url.startsWith("/") ){
|
||||
url = "https://" + Helper.getLiveInstance(getApplicationContext()) + account.getAvatar();
|
||||
}
|
||||
DisplayImageOptions optionsPP = new DisplayImageOptions.Builder().displayer(new SimpleBitmapDisplayer()).cacheInMemory(false)
|
||||
.cacheOnDisk(true).resetViewBeforeLoading(true).build();
|
||||
imageLoader.loadImage(url, optionsPP, new SimpleImageLoadingListener(){
|
||||
@Override
|
||||
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
|
||||
super.onLoadingComplete(imageUri, view, loadedImage);
|
||||
BitmapDrawable ppDrawable = new BitmapDrawable(getResources(), Bitmap.createScaledBitmap(loadedImage, (int) Helper.convertDpToPixel(25, getApplicationContext()), (int) Helper.convertDpToPixel(25, getApplicationContext()), true));
|
||||
if( pp_actionBar != null){
|
||||
pp_actionBar.setImageDrawable(ppDrawable);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onLoadingFailed(java.lang.String imageUri, android.view.View view, FailReason failReason){
|
||||
|
||||
}});
|
||||
}else {
|
||||
if( account != null && account.getAcct() != null)
|
||||
setTitle(account.getAcct());
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
android:animateLayoutChanges="true"
|
||||
android:orientation="vertical">
|
||||
<LinearLayout
|
||||
android:id="@+id/main_header_container"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_width="400dp"
|
||||
android:layout_gravity="center"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
android:animateLayoutChanges="true"
|
||||
android:orientation="vertical">
|
||||
<LinearLayout
|
||||
android:id="@+id/main_header_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
|
|
@ -21,6 +21,16 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
tools:ignore="UseCompoundDrawables">
|
||||
<ImageView
|
||||
android:visibility="gone"
|
||||
android:id="@+id/pp_actionBar"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
tools:ignore="ContentDescription" />
|
||||
<TextView
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginStart="5dp"
|
||||
|
@ -30,5 +40,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="14sp"
|
||||
android:textColor="?attr/actionBarTextColor"
|
||||
/>
|
||||
</LinearLayout>
|
|
@ -13,7 +13,7 @@
|
|||
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="colorPrimary">@color/mastodonC1</item>
|
||||
<item name="colorPrimaryDark">@color/mastodonC3__</item>
|
||||
<item name="colorPrimaryDark">@color/mastodonC2</item>
|
||||
<item name="colorAccent">@color/mastodonC4</item>
|
||||
<item name="android:buttonStyle">@style/ButtonColor</item>
|
||||
<item name="cardStyle">@style/CardViewStyle.Light</item>
|
||||
|
@ -34,7 +34,7 @@
|
|||
|
||||
<style name="AppTheme_NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="colorPrimary">@color/mastodonC1</item>
|
||||
<item name="colorPrimaryDark">@color/mastodonC3__</item>
|
||||
<item name="colorPrimaryDark">@color/mastodonC2</item>
|
||||
<item name="colorAccent">@color/mastodonC4</item>
|
||||
<item name="android:buttonStyle">@style/ButtonColor</item>
|
||||
<item name="cardStyle">@style/CardViewStyle.Light</item>
|
||||
|
|
Loading…
Reference in New Issue