From c14771534f1792daa69b39d5a60687fe005dd13d Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Mon, 27 Feb 2017 15:58:09 +0100 Subject: [PATCH] redesign channel activity --- app/src/main/AndroidManifest.xml | 3 +- .../org/schabi/newpipe/ChannelActivity.java | 103 +++++----- .../extractor/channel/ChannelExtractor.java | 1 + .../extractor/channel/ChannelInfo.java | 8 +- .../youtube/YoutubeChannelExtractor.java | 7 + .../newpipe/info_list/InfoItemBuilder.java | 18 +- .../newpipe/info_list/InfoListAdapter.java | 48 ++++- .../res/drawable-nodpi/channel_banner.png | Bin 0 -> 76865 bytes app/src/main/res/layout/activity_channel.xml | 91 +-------- app/src/main/res/layout/channel_header.xml | 75 +++++++ app/src/main/res/values/strings.xml | 1 + .../youtube/YoutubeChannelExtractorTest.java | 5 + assets/channel_banner_desktop.svg | 186 ++++++++++++++++++ assets/channel_banner_mobild.svg | 144 ++++++++++++++ 14 files changed, 528 insertions(+), 162 deletions(-) create mode 100644 app/src/main/res/drawable-nodpi/channel_banner.png create mode 100644 app/src/main/res/layout/channel_header.xml create mode 100644 assets/channel_banner_desktop.svg create mode 100644 assets/channel_banner_mobild.svg diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e070a62d2..6be6f597b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -156,8 +156,7 @@ + android:launchMode="singleTask"/> @@ -62,7 +48,7 @@ import static android.os.Build.VERSION.SDK_INT; * along with NewPipe. If not, see . */ -public class ChannelActivity extends AppCompatActivity { +public class ChannelActivity extends ThemableActivity { private static final String TAG = ChannelActivity.class.toString(); private View rootView = null; @@ -75,22 +61,17 @@ public class ChannelActivity extends AppCompatActivity { private ImageLoader imageLoader = ImageLoader.getInstance(); private InfoListAdapter infoListAdapter = null; + private String subS = ""; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //since we set themeing we have to set translucent statusBar by hand - if (PreferenceManager.getDefaultSharedPreferences(this) - .getString("theme", getResources().getString(R.string.light_theme_title)). - equals(getResources().getString(R.string.dark_theme_title))) { - setTheme(R.style.DarkTheme_NoActionBar); - } - setTranslucentStatusBar(getWindow()); - setContentView(R.layout.activity_channel); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - rootView = findViewById(R.id.rootView); - setSupportActionBar(toolbar); + rootView = findViewById(android.R.id.content); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowTitleEnabled(true); if(savedInstanceState == null) { Intent i = getIntent(); channelUrl = i.getStringExtra(NavStack.URL); @@ -107,6 +88,7 @@ public class ChannelActivity extends AppCompatActivity { RecyclerView recyclerView = (RecyclerView) findViewById(R.id.channel_streams_view); final LinearLayoutManager layoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); + infoListAdapter.setHeader(getLayoutInflater().inflate(R.layout.channel_header, recyclerView, false)); recyclerView.setAdapter(infoListAdapter); infoListAdapter.setOnStreamInfoItemSelectedListener( new InfoItemBuilder.OnInfoItemSelectedListener() { @@ -140,6 +122,8 @@ public class ChannelActivity extends AppCompatActivity { } }); + subS = getString(R.string.subscriber); + requestData(false); } @@ -153,22 +137,24 @@ public class ChannelActivity extends AppCompatActivity { } private void updateUi(final ChannelInfo info) { - CollapsingToolbarLayout ctl = (CollapsingToolbarLayout) findViewById(R.id.channel_toolbar_layout); ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar); ImageView channelBanner = (ImageView) findViewById(R.id.channel_banner_image); - final FloatingActionButton feedButton = (FloatingActionButton) findViewById(R.id.channel_rss_fab); ImageView avatarView = (ImageView) findViewById(R.id.channel_avatar_view); ImageView haloView = (ImageView) findViewById(R.id.channel_avatar_halo); + TextView titleView = (TextView) findViewById(R.id.channel_title_view); + TextView subscirberView = (TextView) findViewById(R.id.channel_subscriber_view); + Button subscriberButton = (Button) findViewById(R.id.channel_subscribe_button); progressBar.setVisibility(View.GONE); if(info.channel_name != null && !info.channel_name.isEmpty()) { - ctl.setTitle(info.channel_name); + getSupportActionBar().setTitle(info.channel_name); + titleView.setText(info.channel_name); } if(info.banner_url != null && !info.banner_url.isEmpty()) { imageLoader.displayImage(info.banner_url, channelBanner, - new ImageErrorLoadingListener(this, rootView ,info.service_id)); + new ImageErrorLoadingListener(this, rootView ,info.service_id)); } if(info.avatar_url != null && !info.avatar_url.isEmpty()) { @@ -178,8 +164,17 @@ public class ChannelActivity extends AppCompatActivity { new ImageErrorLoadingListener(this, rootView ,info.service_id)); } + if(info.subscriberCount != -1) { + subscirberView.setText(buildSubscriberString(info.subscriberCount)); + } + + if((info.feed_url != null && !info.feed_url.isEmpty()) || + (info.subscriberCount != -1)) { + findViewById(R.id.channel_subscriber_layout).setVisibility(View.VISIBLE); + } + if(info.feed_url != null && !info.feed_url.isEmpty()) { - feedButton.setOnClickListener(new View.OnClickListener() { + subscriberButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d(TAG, info.feed_url); @@ -188,8 +183,9 @@ public class ChannelActivity extends AppCompatActivity { } }); } else { - feedButton.setVisibility(View.GONE); + subscriberButton.setVisibility(View.GONE); } + } private void addVideos(final ChannelInfo info) { @@ -297,30 +293,6 @@ public class ChannelActivity extends AppCompatActivity { channelExtractorThread.start(); } - - // fix transparent statusbar fuckup (fuck google why can't they just leave something that worked - // as it is, and everyone gets happy) - public static void setTranslucentStatusBar(Window window) { - if (window == null) return; - int sdkInt = Build.VERSION.SDK_INT; - if (sdkInt >= Build.VERSION_CODES.LOLLIPOP) { - setTranslucentStatusBarLollipop(window); - } else if (sdkInt >= Build.VERSION_CODES.KITKAT) { - setTranslucentStatusBarKiKat(window); - } - } - - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - private static void setTranslucentStatusBarLollipop(Window window) { - window.setStatusBarColor( - ContextCompat.getColor(window.getContext(), android.R.color.transparent)); - } - - @TargetApi(Build.VERSION_CODES.KITKAT) - private static void setTranslucentStatusBarKiKat(Window window) { - window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); - } - @Override public void onBackPressed() { try { @@ -331,4 +303,19 @@ public class ChannelActivity extends AppCompatActivity { } } + + private String buildSubscriberString(long count) { + String out = ""; + if(count >= 1000000000){ + out += Long.toString((count/1000000000)%1000)+"."; + } + if(count>=1000000){ + out += Long.toString((count/1000000)%1000) + "."; + } + if(count>=1000){ + out += Long.toString((count/1000)%1000)+"."; + } + out += Long.toString(count%1000) + " " + subS; + return out; + } } diff --git a/app/src/main/java/org/schabi/newpipe/extractor/channel/ChannelExtractor.java b/app/src/main/java/org/schabi/newpipe/extractor/channel/ChannelExtractor.java index 18bf67550..fe7b9f7eb 100644 --- a/app/src/main/java/org/schabi/newpipe/extractor/channel/ChannelExtractor.java +++ b/app/src/main/java/org/schabi/newpipe/extractor/channel/ChannelExtractor.java @@ -54,6 +54,7 @@ public abstract class ChannelExtractor { public abstract String getBannerUrl() throws ParsingException; public abstract String getFeedUrl() throws ParsingException; public abstract StreamInfoItemCollector getStreams() throws ParsingException; + public abstract long getSubscriberCount() throws ParsingException; public abstract boolean hasNextPage() throws ParsingException; public int getServiceId() { return serviceId; diff --git a/app/src/main/java/org/schabi/newpipe/extractor/channel/ChannelInfo.java b/app/src/main/java/org/schabi/newpipe/extractor/channel/ChannelInfo.java index 68862ec32..e1fd96ada 100644 --- a/app/src/main/java/org/schabi/newpipe/extractor/channel/ChannelInfo.java +++ b/app/src/main/java/org/schabi/newpipe/extractor/channel/ChannelInfo.java @@ -29,8 +29,6 @@ import java.util.Vector; */ public class ChannelInfo { - - public void addException(Exception e) { errors.add(e); } @@ -66,6 +64,11 @@ public class ChannelInfo { } catch(Exception e) { info.errors.add(e); } + try { + info.subscriberCount = extractor.getSubscriberCount(); + } catch (Exception e) { + info.errors.add(e); + } return info; } @@ -76,6 +79,7 @@ public class ChannelInfo { public String banner_url = ""; public String feed_url = ""; public List related_streams = null; + public long subscriberCount = -1; public boolean hasNextPage = false; public List errors = new Vector<>(); diff --git a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractor.java b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractor.java index 413471eda..f4e872056 100644 --- a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractor.java +++ b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractor.java @@ -294,6 +294,13 @@ public class YoutubeChannelExtractor extends ChannelExtractor { return collector; } + @Override + public long getSubscriberCount() throws ParsingException { + String countRaw = doc.select("span[class*=\"yt-subscription-button-subscriber-count\"]").first() + .text(); + return Long.parseLong(countRaw.replaceAll("\\D+","")); + } + @Override public String getFeedUrl() throws ParsingException { try { diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java index 67b19520a..4ec6123ad 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java @@ -105,7 +105,7 @@ public class InfoItemBuilder { switch(info.infoType()) { case STREAM: itemView = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.stream_item, parent, false); + .inflate(R.layout.stream_item, parent, false); holder = new StreamInfoItemHolder(itemView); break; case CHANNEL: @@ -202,15 +202,15 @@ public class InfoItemBuilder { } } - public String shortSubscriber(Long viewCount){ - if(viewCount >= 1000000000){ - return Long.toString(viewCount/1000000000)+ billion + " " + subsS; - }else if(viewCount>=1000000){ - return Long.toString(viewCount/1000000)+ million + " " + subsS; - }else if(viewCount>=1000){ - return Long.toString(viewCount/1000)+ thousand + " " + subsS; + public String shortSubscriber(Long count){ + if(count >= 1000000000){ + return Long.toString(count/1000000000)+ billion + " " + subsS; + }else if(count>=1000000){ + return Long.toString(count/1000000)+ million + " " + subsS; + }else if(count>=1000){ + return Long.toString(count/1000)+ thousand + " " + subsS; }else { - return Long.toString(viewCount)+ " " + subsS; + return Long.toString(count)+ " " + subsS; } } diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java index adbdc22e7..81d28f753 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java @@ -33,11 +33,20 @@ import java.util.Vector; * along with NewPipe. If not, see . */ -public class InfoListAdapter extends RecyclerView.Adapter { +public class InfoListAdapter extends RecyclerView.Adapter { private static final String TAG = InfoListAdapter.class.toString(); private final InfoItemBuilder infoItemBuilder; private final List infoItemList; + private View header = null; + + public class HeaderHolder extends RecyclerView.ViewHolder { + public HeaderHolder(View v) { + super(v); + view = v; + } + public View view; + } public InfoListAdapter(Activity a, View rootView) { infoItemBuilder = new InfoItemBuilder(a, rootView); @@ -66,21 +75,30 @@ public class InfoListAdapter extends RecyclerView.Adapter { notifyDataSetChanged(); } + public void setHeader(View header) { + this.header = header; + } + @Override public int getItemCount() { - return infoItemList.size(); + return (header == null) ? infoItemList.size() : (infoItemList.size() + 1); } // don't ask why we have to do that this way... it's android accept it -.- @Override public int getItemViewType(int position) { + if(header != null && position == 0) { + return 0; + } else if(header != null) { + position--; + } switch(infoItemList.get(position).infoType()) { case STREAM: - return 0; - case CHANNEL: return 1; - case PLAYLIST: + case CHANNEL: return 2; + case PLAYLIST: + return 3; default: Log.e(TAG, "Trollolo"); return -1; @@ -88,15 +106,17 @@ public class InfoListAdapter extends RecyclerView.Adapter { } @Override - public InfoItemHolder onCreateViewHolder(ViewGroup parent, int type) { + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int type) { switch(type) { case 0: + return new HeaderHolder(header); + case 1: return new StreamInfoItemHolder(LayoutInflater.from(parent.getContext()) .inflate(R.layout.stream_item, parent, false)); - case 1: + case 2: return new ChannelInfoItemHolder(LayoutInflater.from(parent.getContext()) .inflate(R.layout.channel_item, parent, false)); - case 2: + case 3: Log.e(TAG, "Playlist is not yet implemented"); return null; default: @@ -106,7 +126,15 @@ public class InfoListAdapter extends RecyclerView.Adapter { } @Override - public void onBindViewHolder(InfoItemHolder holder, int i) { - infoItemBuilder.buildByHolder(holder, infoItemList.get(i)); + public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) { + //god damen f*** ANDROID SH** + if(holder instanceof InfoItemHolder) { + if(header != null) { + i--; + } + infoItemBuilder.buildByHolder((InfoItemHolder) holder, infoItemList.get(i)); + } else if(holder instanceof HeaderHolder && i == 0 && header != null) { + ((HeaderHolder) holder).view = header; + } } } diff --git a/app/src/main/res/drawable-nodpi/channel_banner.png b/app/src/main/res/drawable-nodpi/channel_banner.png new file mode 100644 index 0000000000000000000000000000000000000000..94b25e98b6d5a0734ba5cc6af2a2382861b6ac45 GIT binary patch literal 76865 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%0Ay|!rYW6LmDgPIS5SzUk!Q8Rp4lqJVp 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_channel.xml b/app/src/main/res/layout/activity_channel.xml index cf67d55c4..5a3257a95 100644 --- a/app/src/main/res/layout/activity_channel.xml +++ b/app/src/main/res/layout/activity_channel.xml @@ -1,81 +1,17 @@ - + android:orientation="vertical" + android:title="Channel"> - - - - - - - - - - - - - - - - - + android:layout_height="match_parent" + android:background="?android:windowBackground" + android:scrollbars="vertical"/> - - + diff --git a/app/src/main/res/layout/channel_header.xml b/app/src/main/res/layout/channel_header.xml new file mode 100644 index 000000000..de836fd33 --- /dev/null +++ b/app/src/main/res/layout/channel_header.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + +